Easy.
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);
OK, here's another variant of the sort that produces the HTML table as required...
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 "</table>\n" if $month;
$month = $m;
print "<table>\n";
}
print "<tr><td>$_->[1]</td><td>HASH key: $_->[2]</td></tr>\n";
}
print "</table>\n" if $#sorted_date >= 0;
And the output is:
<table>
<tr><td>3.13.04</td><td>HASH key: C</td></tr>
</table>
<table>
<tr><td>1.13.04</td><td>HASH key: A</td></tr>
<tr><td>1.12.04</td><td>HASH key: B</td></tr>
</table>
<table>
<tr><td>3.13.02</td><td>HASH key: D</td></tr>
</table>
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.