2010-12-18 181 views
3

我正在嘗試使用內聯替換來編寫Perl腳本。我發現這個腳本示例來做到這一點,但不知道如何使用它作爲我不知道如何指定文件和處理程序?Perl腳本中的Perl內聯替換

$^I = '.bak' # Call for in-place editing; make backups with a .bak suffix 

while (<>) 
{ 
    s/foo/bar/ 
    print; 
} 

回答

4

<>是一個特殊的文件句柄。

特殊的文件句柄:<>

與默認變量,特殊的文件句柄 - 寫爲<>是語言的捷徑加入使程序更容易編寫。特殊文件句柄將所有命令行參數視爲文件名,並依次打開。如果沒有命令行參數,則打開並從STDIN讀取。按照UNIX慣例,如果「 - 」作爲命令行參數給出,它會打開STDIN代替文件。

Source

設置$^I變量使就地編輯 - 換句話說文件被直接修改。

要使用該腳本可以例如這樣做:

perl yourscript.pl somefile.txt 
+0

哈啊,有道理現在:)三江源。 – ard 2010-12-18 22:05:23