whileとforeachと行番号
以下のファイルを読込んで表示するだけのプログラムを作成します.
# 読込むデータ dat.dat
0000,apple
0010,banana
0020,cherry
while
を使って書くとこうなります.$
はコマンドプロンプトです.
$ perl -e 'print while(<>)' dat.dat 0000,apple 0010,banana 0020,cherry
foreach
でも同じように書けます.
$ perl -e 'print foreach(<>)' dat.dat 0000,apple 0010,banana 0020,cherry
行番号も出力します.
$ perl -e 'print "$.: $_" while(<>)' dat.dat 1: 0000,apple 2: 0010,banana 3: 0020,cherry
foreach
でも同様に行番号を出力します.
$ perl -e 'print "$.: $_" foreach(<>)' dat.dat 3: 0000,apple 3: 0010,banana 3: 0020,cherry
while
では表示している行の行番号が出ますが,foreach
では最後の行番号になります.