I am attempting to write a Perl script that parses a log where on each line the second value is the date. The script takes in three arguments: the input log file, the start time, and the end time. The start and end time are used to parse out a certain value on each line that that falls between those two times. But to properly run this I am converting the start and end time to epoch time. The problem I am having is that to convert the loops 'i' value back to normal time to compare against the log file. After running localtime($i)
I print the value and only see a reference printed not the actual value.
Here is the script I have so far (it is a work in progress):
#!/usr/bin/perl use strict; use warnings; use Time::Local; use Time::localtime; use File::stat; my $sec = 0; my $min = 0; my $hour = 0; my $mday = 0; my $mon = 0; my $year = 0; my $wday = 0; my $yday = 0; my $isdst = 0; ########################## # Get the engine log date ########################## my $date = `grep -m 1 'Metric' "$ARGV[0]" | awk '{print \$2}'`; ($year,$mon,$mday) = split('-', $date); $mon--; ######################################### # Calculate the start and end epoch time ######################################### ($hour,$min,$sec) = split(':', $ARGV[1]); my $startTime = timelocal($sec,$min,$hour,$mday,$mon,$year); ($hour,$min,$sec) = split(':', $ARGV[2]); my $endTime = timelocal($sec,$min,$hour,$mday,$mon,$year); my $theTime = 0; for (my $i = $startTime; $i <= $endTime + 29; $i++) { #print "$startTime $i \n"; $theTime = localtime($i); #my $DBInstance0 = `grep "$hour:$min:$sec" "$ARGV[0]"`;# | grep 'DBInstance-0' | awk '{print \$9}'`; #print "$DBInstance0\n"; print "$theTime\n"; } print "$startTime $endTime \n";
The output looks like:
Time::tm=ARRAY(0x8cbbd40) Time::tm=ARRAY(0x8cbc1a0) Time::tm=ARRAY(0x8cbbe80) Time::tm=ARRAY(0x8cbc190) Time::tm=ARRAY(0x8bbb170) Time::tm=ARRAY(0x8cbc180) Time::tm=ARRAY(0x8cbbf30) Time::tm=ARRAY(0x8cbc170) Time::tm=ARRAY(0x8cbc210) Time::tm=ARRAY(0x8cbc160) 1275760356 1275760773
I only have access to the core Perl modules and am unable to install any others.