ファイル単位の行番号の取得


入力ファイルが複数指定されると,$. には累積の行番号が収められる。ファイル単位で行番号を取得するには,ファイル末に達する (eof) たびにハンドル ARGV を閉じ,$. の値をリセットする。

   %perl -ne 'print "$. $_"; close ARGV if eof' voa/*

次のように,変数を使い行数を数え,$ARGV の値が変わるたびに値をリセットしても,同じことができる。

   %perl -ne '$num = 0 if ($file ne $ARGV); $num++; print "$num $_"; $file = $ARGV;' voa/*