use strict;
use Data::Dumper;
my %list = (
A => '1.13.04:Record:A',
B => '1.12.04:Record:B',
C => '3.13.04:Record:C',
);
my @sorted_date =
map { $_->[0] }
sort { $b->[1] <=> $a->[1] }
map { my @n = /^(\d+)\.(\d+)\.(\d+):/;
my $d = sprintf "%02d%02d%02d", @n[2,0,1];
[join('.',@n), $d] } values %list;
print Dumper(\@sorted_date);
####
use strict;
use Data::Dumper;
my %list = (
A => '1.13.04:Record:A',
B => '1.12.04:Record:B',
C => '3.13.04:Record:C',
D => '3.13.02:Record:D',
);
my @sorted_date =
map { [ $_->[1], $_->[0], $_->[2] ] }
sort { $b->[1] <=> $a->[1] }
map { my @n = $list{$_} =~ /^(\d+)\.(\d+)\.(\d+):/;
my $d = sprintf "%02d%02d%02d", @n[2,0,1];
[join('.',@n), $d, $_] } keys %list;
my $month;
foreach (@sorted_date) {
my $m = substr($_->[0], 0, 4); # retrieve YYMM
if ($month ne $m) {
print "\n" if $month;
$month = $m;
print "\n";
}
print "| $_->[1] | HASH key: $_->[2] |
\n";
}
print "
\n" if $#sorted_date >= 0;
####
| 1.13.04 | HASH key: A |
| 1.12.04 | HASH key: B |