in reply to Re^3: sub routine to sort per time
in thread sub routine to sort per time

Thanks apl ! Here is the updated code (still does not work), I get nothing from the print.

#! perl -slw use strict; use diagnostics; use Data::Dump qw[ pp ]; sub by_hour{ my ($a,$b) = @_; my $h_a; my $mn_a; my $h_b; my $mn_b; print STDOUT "a is $a\n"; print STDOUT "b is $b\n"; my $res; if ($a =~ /(\d\d):(\d\d)/){ $h_a = $1; $mn_a = $2; } else{ $res = 0; } if ($b =~ /(\d\d):(\d\d)/){ $h_a = $1; $mn_a = $2; } else{ $res = 0; } print STDOUT "h_a is $h_a\n"; print STDOUT "h_b is $h_b\n"; print STDOUT "mn_a is $mn_a\n"; print STDOUT "mn_b is $mn_b\n"; if ($h_a < $h_b){ $res = -1; } if ($h_a > $h_b){ $res = 1; } if ($h_a == $h_b){ if ($mn_a < $mn_b){ $res = -1; } if ($mn_a > $mn_b){ $res =1; } if ($mn_a == $mn_b){ $res = 0; } } return $res; } my %in; while (<DATA>){ m[(\d\d:\d\d) (.+)$] and push @{ $in{ $1 } }, $2; } for my $hr ( sort by_hour keys %in) { print STDOUT "$hr\n"; } __DATA__ 11:10 A1 12:30 E4 11:30 Z4 15:50 H5 12:02 H6 12:25 B2 11:25 A8 12:30 F3 14:30 E7 12:50 E15 12:55 E16