my %owner = ( ); #### open (FILE,"cron.log") or die "Can't open 'cron.log -- here's why: $!\n"; #### use IO::File; my $fh = new IO::File("cron.log", "r") or die "Can't open 'cron.log' ($!)\n"; # Now use $fh in place of FILE ... #### my @split = split /[ ]+/; my $split1 = $split[1] || ""; next if ($split1 !~ /oracle|sybase/) #### #!/usr/bin/perl use strict; use warnings; use Date::Manip; use IO::File; my @owner = qw/oracle sybase/; my %owner = ( ); my $fh = new IO::File("cron.log") or die "Can't open 'cron.log' ($!)\n"; while(<$fh>) { chomp; my @split = split /[ ]+/; my $split1 = $split[1] || ""; next if ($split1 !~ /oracle|sybase/); my ($mode,$owner,$job_id,undef,undef,undef,undef,$timestamp,undef) = split /[ ]+/; #get same jobID finish timestamp and calculate difference, #then save back ${owner}{$job_id} = DateCalc (${$owner}{$job_id},$timestamp) if ($mode=~ /^>/); } close $fh; foreach my $owner(@owner) { foreach (keys %owner) { print "$owner - JobID:$_ - RunTime:${$owner}{$_}\n"; }; }