我在寫一個將文件讀入數組的perl腳本。我在Windows上編寫了程序,使用Perl 5.16(它也適用於5.14),並且腳本使用Perl 5.12的Mac失敗。迭代行與while和數組賦值之間的區別
失敗的部分爲:my @array = <$file>
。在Mac上,數組返回了正確的大小(與文件中的行數相同),但除最後一個元素外,其他每個元素均爲空。該代碼工作正常,當我切換到這個代替:
my @array;
while(<$file>){
push @array, $_;
}
我不知道這是否會作出區別,如果我換行尾是LF
而不是CRLF
(視窗風格)。雖然問題是固定的,但它讓我感到困惑。我認爲我列出的這兩個代碼片段是,確切地說是同樣的東西。他們在這裏產生不同結果的區別是什麼?
Opps!我想我會刪除這個,並提出一個不同的問題... – 2012-08-17 17:22:16