症状:$c="foo";
引发错误,$b="foo";
没有。Perl,变量行为,基于名称的差异
我的脚本实际上是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
变量一般而言,代码中的''和'$ b',甚至会折扣你找到的这种行为差异。 – DVK这听起来像一个好习惯,谢谢DVK。 –