Perlでの nオプションとダイアモンド演算子
たとえば、コマンドプロンプトから以下のコマンドを入力するとソース(x.txt)を読み込んで、行数を付加して、一行毎に全行を表示します。
eオプションはワンライナーの実行指定で、nオプションは、『while(<>)』ループ内でのワンライナー実行です。
ちなみに、『$.』には行数が入っている。
perl -ne "print $.,':', $_" x.txt
参考:
- n オプションは、与えたプログラムの外側に下のようなループがあるのと同じような動作をします(実際に等価な処理は少し違います)。
while(<>) { .... }「<>」は、ダイアモンド演算子と呼ばれ、「標準入力から入力が与えられた場合はそちらを読み込み、ファイル名が引数として与えられた場合はファイルから読み込む」というとても便利な演算子です。
http://www.stackasterisk.jp/tech/program/perl04_04.jsp
ダイアモンド演算子「<>」は、標準入力と引数の両方が対応されているのですね。