#! perl use strict; use warnings; use File::ReadBackwards; my $logfile = 'log.txt'; my $header = 'start: real'; my $footer = 'end: real'; my $in_data = 0; my @lines; my $bw = File::ReadBackwards->new($logfile) or die "Cannot open file '$logfile' for reading backwards: $!"; while (my $line = $bw->readline) { chomp $line; if ($in_data) { unshift @lines, $line; last if $line eq $header; } elsif ($line eq $footer) { unshift @lines, $line; $in_data = 1; } } print join("\n", @lines), "\n";