【发布时间】:2013-07-13 21:12:21
【问题描述】:
症状:$c="foo"; 会引发错误,$b="foo"; 不会。
我的脚本实际上是 3 行。以下不会产生错误或警告use strict;$b = "foo";print $b;
但如果更改为以下内容,我会收到“需要显式包名称”错误。use strict;$c = "foo";print $c;,
我了解use strict; 需要在使用前声明变量,将$c = "foo"; 更改为my $c = "foo"; 确实可以防止错误,但仅此一项并不能解释差异。
任何人都可以在这里阐明一下吗?我确定我遗漏了一些明显的东西。我在 Windows 7 x64 中运行 Strawberry Perl v5.16.3。我正在 npp 中编辑并通过c:\strawberry> perl test.pl从命令行执行我的脚本
【问题讨论】:
-
由于它们对
sort的特殊含义,一般情况下,您不应该在代码中使用$a和$b,即使您发现的这种行为差异也会被忽略。 -
这听起来是个好习惯,谢谢 DVK。