2011-06-22 74 views

回答

2
print reverse <>; 

<>在數組環境中計算,這意味着它「吸食「 文件。它讀取整個文件。在由@ARGV命名的文件表示的魔術文件的情況下,它將按照命令行參數(@ARGV)引用的順序讀取所有文件的內容。

reverse然後反轉數組的順序,這意味着最後一個文件的最後一行最先出現,最後一個文件的第一行最後一行出現。

print然後打印數組。

從你的筆記,你可能會想是這樣的:

perl -e 'sub BEGIN { @ARGV=reverse @ARGV; } print <>;' /etc/motd /etc/passwd 
+6

數組是一個變量類型;你的意思是「在列表上下文中評估」,「顛倒列表的順序」,「然後打印列表」。 – ysth

1

這在docs for I/O operators描述。以下是文檔的摘錄:

空文件句柄<>是特殊的:它可以用來模擬sed和awk的行爲。來自<>的輸入來自標準輸入或來自命令行上列出的每個文件。以下是它的工作原理:第一次計算<>時,將檢查@ARGV數組,如果它是空的,則$ ARGV [0]設置爲「 - 」,打開時爲您提供標準輸入。 @ARGV數組然後被處理爲一個文件名列表。

它值得閱讀整個文檔,因爲它提供了在各種使用情況下相當於<>的等效「非魔力」Perl代碼。