在探索另一種答案sarathi的current file line number question,我寫了這一個班輪與期望,這將打印的所有文件的第一行提供:爲什麼__LINE__在這個Perl單線程中不斷摺疊?
$ perl -ne 'print "$ARGV : $_" if __LINE__ == 1;' *txt
如預期這沒有工作;所有行都被打印出來。
通過-MO=Deparse
運行單行顯示條件不存在。我想這是因爲它已經在編譯時間常數摺疊:
$ perl -MO=Deparse -ne 'print "$ARGV : $_" if __LINE__ == 1;' *txt
LINE: while (defined($_ = <ARGV>)) {
print "$ARGV : $_";
}
-e syntax OK
但是,爲什麼?
在Perl 5.8.8下運行。
檢查我的編輯打印所有文件的第一行。 – Vijay