in reply to Re: sub routine to sort per time
in thread sub routine to sort per time
Thanks a lot apl
Here is the program to take into account your remarks. However, there is still a problem.
#! 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; my $res; if ($a =~ /(\d\d):(\d\d)/){ $h_a = $1; $mn_a = $2; } if ($b =~ /(\d\d):(\d\d)/){ $h_a = $1; $mn_a = $2; } 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; } my @keys = keys %in; my @times = sort @keys; 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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: sub routine to sort per time
by apl (Monsignor) on Nov 26, 2008 at 14:20 UTC | |
by steph_bow (Pilgrim) on Nov 26, 2008 at 14:49 UTC |