2010-12-18 9 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がオープンされます。 $^I変数を設定

Source

は、インプレース編集を可能にします - 他の言葉でファイルが直接変更されます。

perl yourscript.pl somefile.txt 
+0

はえーえ、今理にかなって:)ありがとう:

により、たとえばこれを行うことができ、このスクリプトを使用します。 – ard

関連する問題