>>>>> "David" == David Jantzen <[EMAIL PROTECTED]> writes:
David> # Now onto the magic of the ST: map/sort/map. (Read from bottom David> to top) David> print # the results of the inner map David> map { David> $_->[0][3] = UnixDate($_->[1], "%B %e, %Y"); # translate back David> to our human readable date David> join(':', @{$_->[0]}), "\n"; # dereference the array David> containing our values and join them together David> } sort { David> $category_table{$a->[0][1]} <=> $category_table{$b->[0][1]} # David> sort on category David> || Date_Cmp($a->[0][3], $b->[1]) # or sort on date if Date_Cmp is expensive, the dates should be decoded in the first map block to an easier-to-compare analogue. The whole point of the ST is to keep the computations in the sort to an *absolute minimum*. Also, the assymetry of $a->[0][3] and $b->[1] seems very very broken. Every reference you make to $a in the sort block should have the *identical* reference to $b. Always. Always. David> } map { David> chomp; David> my @row = split(/:/, $_); David> [EMAIL PROTECTED], ParseDate($row[3])]; # pass out an array of the @row David> and dates to compare David> } @current_deals; Just another sorting expert, :) -- Randal L. Schwartz - Stonehenge Consulting Services, Inc. - +1 503 777 0095 <merlyn@stonehenge.com> <URL:http://www.stonehenge.com/merlyn/> Perl/Unix/security consulting, Technical writing, Comedy, etc. etc. See PerlTraining.Stonehenge.com for onsite and open-enrollment Perl training!