8.4 ファイル内の行、段落を後のものから順番に処理する

  • 方法1
@lines = <FILE>;
while ($line = pop @lines) {
  # $lineに対する処理を書く
}
  • 方法2
@lines = reverse <FILE>;
foreach $line (@lines) {
  # $lineに対する処理を書く
}
  • 方法3: Tie::Fileモジュールを使用
use Tie::File;
tie(@lines, "Tie::File", $FILENAME, mode=>0) or die;
$max_lines = $#lines;
for ($i = $max_lines, $i; $i--) {
  # $lines[$i]に対する処理を書く(例えば行番号の付加)
  printf "%5d %s\n", $i+1, $lines[$i];
}