我運行下面的代碼:Perl的 - 文件啜問題
open my $fh, "<", $file;
$/ = undef;
my $report = <$fh>;
$/ = "\n";
close $fh;
print("$report\n\n");
$文件是指看起來像這樣的文本文件:
a 1
b 2
c 3
我跑了兩個不同的Linux驗證碼框。其中一個給了我預期的輸出(就像它在文本文件中出現的一樣)。其他人給我這個:
GLOB(0x80f1174)
...這有效地阻止我進一步操作的內容。
我檢查了Perl版本 - 一個給我預期的輸出是5.10,而另一個是5.8。但是,在過去的5.8版本中,我對相似的文件執行了完全相同的代碼。
我也試過將文件從DOS轉換爲UNIX:set ff = unix,但無濟於事。
如果第4行表示'my $ result = $ fh'而不是'my $ result = <$fh>',那麼您將得到類似於'GLOB(0x80f1174)'的輸出。 – mob 2012-04-02 15:41:35
@mob我仔細檢查了我的代碼 - 它使用的是<$fh>。 – kaspnord 2012-04-02 15:47:25
@ kaspnord,然後三重檢查。也許你沒有執行你認爲正在執行的文件。 – ikegami 2012-04-02 16:03:04