Perl的$ *变量曾经做过什么?

时间:2009-11-23 09:27:29

标签: perl predefined-variables

我有http://www.hyllander.org/node/23使用$*(“美元星号”或“美元星”)的代码,但我的perl版本报告:

$* is no longer supported at migrate.pl line 284.

你知道做什么的副作用

$*=1

这是否会以某种方式影响split或tokenizer或正则表达式等函数?

1 个答案:

答案 0 :(得分:16)

以下是perldoc perlvar的输出部分:

  

$ *设置为非零整数值以执行多行   在字符串中匹配,0(或   undefined)告诉Perl它可以   假设字符串包含单个字符串   线,以优化为目的   模式匹配。模式匹配   包含多个换行符的字符串   $ *会产生令人困惑的结果   是0还是未定义。默认是   未定义。 (助记符:*匹配   多件事。)这个变量   仅影响解释   “^”和“$”。字面换行可以   即使在“$ * == 0”时也会搜索。

     

在现代版本中不推荐使用$ *   Perl,取而代之的是“/ s”和“/ m”   模式匹配的修饰符。

     

为$ *指定非数值   触发警告(并使$ *行动   if“$ * == 0”),同时分配一个   数值到$ *就是这个   隐式“int”应用于   值。