use File::ReadBackwards; tie *BW, 'File::ReadBackwards', 'log_file' or die "can't read 'log_file' $!" ; while( ) { print ; } #### use Tie::File; tie my @array, 'Tie::File', 'log_file' or die "can't read 'log_file' $!"; for ( 1 .. @array ) { $_ = -$_; print $array[$_]; }