@job_data = ({'name'='job1', 'runs'='19:20'}, {'name'='job2', 'runs'='17:22'}, {'name'='job3', 'runs'='19:25'}) #### sub by_time{ my $a_time = $a->{'starts'}; my $b_time = $b->{'starts'}; my @aparts = split ':', $a_time; my @bparts = split ':', $b_time; #print $aparts[0]."\t".$bparts[0]."\n"; if ($aparts[0] > $bparts[0]){return 1} if ($aparts[0] < $bparts[0]){return 0} else { if ($aparts[1] > $bparts[1]){return 1} if ($aparts[1] < $bparts[1]){return 0} else{return 1} }; }