Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl Monk, Perl Meditation

Re: Re: Date comparison

by George_Sherston (Vicar)
on Jul 05, 2002 at 21:28 UTC ( #179747=note: print w/replies, xml ) Need Help??

in reply to Re: Date comparison
in thread Date comparison

ehdonon ++ this is by far the easiest solution, and worth spelling out so that it doesn't get lost in the subsequent controversy
use Date::Parse; my @dates = qw[ 02/03/08 02/04/02 3:00pm 4:00am ]; my @sorted = sort {str2time($a) <=> str2time($b)} @dates; print $_,"\n" for @sorted; __END__ 02/04/02 4:00am 3:00pm 02/03/08
- n.b. times are assumed to be *today* unless date is specified. This will handle a variety of different date / time formats.

George Sherston

Replies are listed 'Best First'.
Re: Re: Re: Date comparison
by dws (Chancellor) on Jul 05, 2002 at 23:07 UTC
    Since str2time() is a relatively expensive routine, this a perfect time for pulling out the "Orcish Maneuver".

    In the example above, change   my @sorted = sort {str2time($a) <=> str2time($b)} @dates;

    my %cache; my @sorted = sort {($cache{$a} ||= str2time($a)) <=> ($cache{$b} ||= str2time($b)) } @dates;

        But why "orcish"?

        The Orcish Maneuver gets its name from the use of the "or" assignment operator (||=) to "cache" values within a Schwartzian transform. "or" + "cache" --> "orcish".

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://179747]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others perusing the Monastery: (3)
As of 2019-07-20 05:54 GMT
Find Nodes?
    Voting Booth?

    No recent polls found