Perl 的 $* 变量用来做什么?

发布于 2024-08-11 23:47:43 字数 390 浏览 5 评论 0原文

我有一些来自 http://www.hyllander.org/node/23 的代码,它使用$* (“dollar asterisk”或“dollar star”),但我的 perl 版本报告:

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

你知道这样做的副作用是什么吗

$*=1

?这是否会以某种方式影响 split< 等函数/code> 或分词器或正则表达式?

I have some code from http://www.hyllander.org/node/23 that uses $* ("dollar asterisk" or "dollar star"), but my version of perl reports:

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

Do you know what were the side-effects of doing

$*=1

Did that somehow affect functions like split or tokenizers or regular expressions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不甘平庸 2024-08-18 23:47:43

以下是 perldoc perlvar 的部分输出:

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

现代语言中不推荐使用 $*
Perl,被“/s”和“/m”取代
模式匹配修饰符。

为 $* 分配非数值
触发警告(并使 $* 起作用
if "$* == 0"),同时分配
$* 的数值使得
隐式“int”应用于
值。

Here's part of the output of perldoc perlvar:

$* Set to a non-zero integer value to do multi-line
matching within a string, 0 (or
undefined) to tell Perl that it can
assume that strings contain a single
line, for the purpose of optimizing
pattern matches. Pattern matches on
strings containing multiple newlines
can produce confusing results when $*
is 0 or undefined. Default is
undefined. (Mnemonic: * matches
multiple things.) This variable
influences the interpretation of only
"^" and "$". A literal newline can be
searched for even when "$* == 0".

Use of $* is deprecated in modern
Perl, supplanted by the "/s" and "/m"
modifiers on pattern matching.

Assigning a non-numerical value to $*
triggers a warning (and makes $* act
if "$* == 0"), while assigning a
numerical value to $* makes that an
implicit "int" is applied on the
value.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文