症狀:$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。 –