Description: File::ReadBackwards works similar to the linux shell command tac. It reads the file line by line strarting from the end of the file.
CPAN: File::ReadBackwards
Example 1:
Being a System’s Administrator, I am usually doing some analysis on a large logfile. Therefore, I may not need all the information contained in the log. This may be especially true if the logs only get rotated once a day or once a week and I don’t need all the information in the log file. Using File::ReadBackwards in combination with a date and time calculation module, I can take only the amount of time I want to use from the logs and then stop processing there. Since we aren’t covering the date calculations here, I will push those out to another subroutine that we will assume works.
# Always use these
use strict;
use warnings;
# Use the module itself
use File::ReadBackwards;
# Define the log file to be read
my $log = "/var/log/log_file";
# Open the logfile by tie'ing it to the module
tie *LOG, "File::ReadBackwards", "$log"
or die ("$log tie error: $!");
# Iterate over the logfile
while (my $line = ) {
# Split the log line
my @entry = split(/\s+/, $line);
# Take the timestamp and check if we
# have hit our threshold yet
# Break loop if we have
last if (time_reached($entry[0]) == 1);
}
# Cleanup
untie (*LOG);
