在perl 5.8.5中,如果我執行以下操作,則不會出現錯誤:爲什麼undef值在Perl中成爲有效的數組引用?
use strict;
my $a = undef;
foreach my $el (@$a) {
...whatever
}
這裏發生了什麼?打印出ref($a)
的輸出表明$a
在某些時候變爲有效的數組引用。但我從來沒有明確地將$a
設置爲任何東西。
似乎很奇怪,如果沒有我做任何事情,變量的內容可能會改變。
想,有人嗎?
編輯:是的,我知道所有關於自動生存的知識。我一直認爲必須在某個地方有一個任務來觸發它,而不僅僅是一個參考。
這是perl。奇怪很好,因爲它很奇怪。 – 2009-10-29 13:30:23
我不認爲這很奇怪,只是爲了節省一些聲明。 – 2009-10-29 13:44:05
@Stefano:爲什麼麻煩檢查Perl的問題只爲巨魔?它很單調乏味...... – Telemachus 2009-10-29 16:45:00