@datalist = GetLogFilesAndDatesIntoArray($logdirectory); ExtractData(@datalist); sub GetLogFilesAndDatesIntoArray { my @filenames; my @filesanddates; my @fileanddate; my @sortedfilesanddates; my $dev, my $ino, my $mode, my $nlink, my $uid, my $gid, my $rdev, my $size, my $atime, my $mtime, my $ctime, my $blksize, my $blocks; my $filecounter; my $filename; my $logdirectory = $_[0]; #Get passed log directory name chdir($logdirectory) || die "Cannot open " . $logdirectory; #Change to log file directory @filenames = ; #Get list of UP log files in directory $filecounter = 0; foreach $filename (@filenames) { #Get file info on every file and store name and date in array print "Checking ".$filename."\n"; ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size, $atime, $mtime, $ctime, $blksize, $blocks) = stat $filename; @fileanddate = ($filename, $mtime); $filesanddates[$filecounter] = \@fileanddate; print $filesanddates[$filecounter][0]."\n"; $filecounter++; } #Sort by date #@sortedfilesanddates = sort { $a->[1] <=> $b->[1] } @filesanddates; return(@filesanddates); #Return array containing the data } sub ExtractData { my @filesanddates = @_; #Get the array passed into the function my $logfilename; my $filedate; my $status = "Success"; my @errormessage; my $errorline = 0; my $message; my $service; my $comment; my $firstline = "true"; my $listcount; my @header; my $theline; chdir($logdirectory) || die "Cannot open " . $logdirectory; #Change to log file directory open(REPORT, ">" . $report) || die "Cannot open ".$report; #Open the report file print "Checking the list\n Length is ".$#filesanddates."\n"; #then process all other logs for that day for($listcount = 0; $listcount < $#filesanddates; $listcount++) { $logfilename = $filesanddates[$listcount][0]; open(LOGFILE, $logfilename) || die "Cannot open ".$logfilename; #*** THE LOGFILENAME IS THE LAST ELEMENT OF THE ORIGINAL ARRAY REPEATED *** print "Searching ".$logfilename." for errors\n"; print "listcount: ".$listcount."\n\n"; .....etc