我有http://www.hyllander.org/node/23使用$*
(“美元星号”或“美元星”)的代码,但我的perl版本报告:
$* is no longer supported at migrate.pl line 284.
你知道做什么的副作用
$*=1
这是否会以某种方式影响split
或tokenizer或正则表达式等函数?
答案 0 :(得分:16)
以下是perldoc perlvar
的输出部分:
$ *设置为非零整数值以执行多行 在字符串中匹配,0(或 undefined)告诉Perl它可以 假设字符串包含单个字符串 线,以优化为目的 模式匹配。模式匹配 包含多个换行符的字符串 $ *会产生令人困惑的结果 是0还是未定义。默认是 未定义。 (助记符:*匹配 多件事。)这个变量 仅影响解释 “^”和“$”。字面换行可以 即使在“$ * == 0”时也会搜索。
在现代版本中不推荐使用$ * Perl,取而代之的是“/ s”和“/ m” 模式匹配的修饰符。
为$ *指定非数值 触发警告(并使$ *行动 if“$ * == 0”),同时分配一个 数值到$ *就是这个 隐式“int”应用于 值。