my $num= sub {
local ($_) = @_;
return $forwards * (
- m/^errs$/ ? -1 :
- m/^errs\.(\d+)(?:\.gz$)$/ ? $1 :
- undef
+ m/^errs$/ ? 1 :
+ m/^errs\.(\d+)(?:\.gz$)$/ ? ($1+2) :
+ 0
);
};
foreach my $leaf (
sort { $num->($a) <=> $num->($b) }
- grep { defined $num->($_) }
+ grep { $num->($_) }
readdir LOGSDIR
) {
my $file= "$dir/$leaf";
- if ($file =~ m/\.gz$/) {
- open LOGFILE, "zcat $file |" or die "zcat $file $!";
+ if ($file =~ m/\/errs.*\.gz$/) {
+ open LOGFILE, "zcat $file | tac |" or die "zcat $file | tac $!";
+ } elsif ($file =~ /errs/) {
+ open LOGFILE, "tac $file |" or die "tac $file $!";
} else {
- open LOGFILE, "< $file" or die "$file $!";
- }
+ die "Unexpected filename in scanlogs: $file";
+ }
while (<LOGFILE>) {
my $tgot= $callback->();
next unless $tgot;