in reply to hash array

You didn't show the output you desire, so I can only guess, but I would try an approach like this:
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

Replies are listed 'Best First'.
Re^2: hash array
by roadtest (Sexton) on Nov 05, 2010 at 18:41 UTC
    Thanks, your code is very readable. I will incorporate it into my program.