2 回答

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
你這樣的命名本來就是錯(cuò)的... 去掉 strict, 你就不會(huì)發(fā)現(xiàn)這樣的命名是不對(duì)的,
往後的處理也將是錯(cuò)的. ( 如果結(jié)果還是對(duì)的, 那只是你走運(yùn)而已 )
想像一下
my @array = ( 1..10 );
my $array[1] = 10;
@array = ();
print @array;
你還能理解 $array[1] 是甚麼嗎 ?
而如果你用的 perl 是 5.14 或之後, 你這樣的宣告方法應(yīng)該是直接報(bào)錯(cuò), 不管你有沒有 use strict;
另外值得一提的就是
my $array_name = abc;
其實(shí)就是
my $array_name = abc(); # 或者
my $array_name= &abc(); # 的意思,
而你可能想這是
my $array_name = "abc" ;

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊
問題出在
my @array = ( 1..10 ); # 你已定義了 @array
my $array[1] = 10;; # 這里你就不要用 my
@array 是一個(gè)變量名稱 "symbol", 你可以 my
$array[1] 是一個(gè)地址段(引用) "refs" , 你不能對(duì)一個(gè)引用作 my 的宣告
- 2 回答
- 0 關(guān)注
- 977 瀏覽
添加回答
舉報(bào)