use strict; use warnings; use Date::Manip; my %owners; while (<DATA>) { my ($mode, $owner, $job_id, $timestamp) = (split)[0..2,7]; next unless $owner =~ /oracle|sybase/; $owners{$owner}{$job_id}{$mode} = $timestamp; } for my $owner (keys %owners) { for my $job (keys %{ $owners{$owner} }) { if (exists $owners{$owner}{$job}{'>'}) { my $t1 = $owners{$owner}{$job}{'<'}; my $t2 = $owners{$owner}{$job}{'>'}; my $d = DateCalc($t2, $t1); print "$owner - JobID:$job - RunTime:$d\n"; } } } __DATA__ < root 26144 c Tue Nov 2 03:10:02 2010 < oracle 26161 c Tue Nov 2 03:10:25 2010 < oracle 26193 c Tue Nov 2 03:10:30 2010 < sybase 26163 c Tue Nov 2 03:10:32 2010 > oracle 26161 c Tue Nov 2 03:10:33 2010 < sybase 26188 c Tue Nov 2 03:10:38 2010 > sybase 26163 c Tue Nov 2 03:10:58 2010
Prints out:
oracle - JobID:26161 - RunTime:-0:0:0:0:0:0:8 sybase - JobID:26163 - RunTime:-0:0:0:0:0:0:26
In reply to Re: hash array
by toolic
in thread hash array
by roadtest
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |