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);