Perlオプションとスクリプト 99/3/20(Sat) 11:40pm
Perlのオプションやスクリプトファイルを用いた使い方と
ファイル入出力について説明します。
jperl -ne "print;" infile
"-ne" はPerlのオプション"-n"と"-e"を合わせて書いたものです。
"-n" は、標準入力からテキストデータを一行ずつ受け取ってスクリプトで処
理をするというループを作り出します。"-e" は次の""で括られた引数がスクリ
プトであることを指定します。オプションを使わずに全体をスクリプトで書け
ば、
-----^ scr001.pl
while(<>){
print;
}
-----$ scr001.pl
となります。"print;" の行は受け取った行をそのまま標準出力(この場合はDOS
画面)に出力します。
"-----^ scr001.pl" と "-----$ scr001.pl" の行で区切られた "while(<>){"
の行から "}" の行までがスクリプトです。スクリプトの部分をエディタ(メモ
帳、ToolMan、VZ、WZ、秀丸、Dana、等)にコピーしてscr001.plというファイル
名を付けて保存してください。
jperl scr001.pl infile
とすれば同じ結果が得られます。
jperl -pe ";" infile
jperl -pe "" infile
でも同様の結果が得られます。
"-p" オプションを使うと、
-----^ scr002.pl
while(<>){
;
} continue {
print;
}
-----$ scr002.pl
と等価になります。
これまで出てきた"<>"は"<STDIN>"の略で標準入力(STDINは標準入力のファイ
ルハンドル)を意味しています。Perlを起動するコマンドラインで指定されたテ
キストファイルからwhileループによって一行ずつ文字列が読みこまれます。
"print;" は "print STDOUT $_;" の略です。"print"は文字列を出力する関数
で、出力先は標準出力を表すファイルハンドルSTDOUTで示され、出力する文字列
は"$_"で、この場合入力された文字列のままです。
Perlを使って、文字列を一行ずつテキストファイルから読みこんで出力する方
法が大体説明できたかと思います。