in reply to Re: Re: Sorting by date
in thread Sorting by date
Easy.
OK, here's another variant of the sort that produces the HTML table as required...
And the output is:
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>
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Re: Re: Sorting by date
by Anonymous Monk on Jan 06, 2004 at 01:53 UTC | |
by Roger (Parson) on Jan 06, 2004 at 02:00 UTC | |
Re: Re: Re: Re: Sorting by date
by sulfericacid (Deacon) on Jan 06, 2004 at 10:40 UTC | |
by Roger (Parson) on Jan 06, 2004 at 12:39 UTC | |
Re: Re: Re: Re: Sorting by date
by Anonymous Monk on Jan 07, 2004 at 05:48 UTC | |
by Roger (Parson) on Jan 07, 2004 at 06:26 UTC |
In Section
Seekers of Perl Wisdom