開いているファイルハンドルの、現在の行数は $. に入っている 簡易 cat -n スクリプト open(FH, $file) or die "cannot open $file: $!\n"; while (<FH>) { print "$.\t"; print; } close(FH); ファイルハンドルを close するとリセットされる @lines = <FH>; とリストコンテキストの場合は、ファイルハンドルを一気に全部読み込んで配列に 入れるので、(closeする前ならば)最後の行=全部で何行あったか、しかわからない。