On Wed, Jan 19, 2005 at 04:59:33PM +0000, [EMAIL PROTECTED] wrote:
> Daisuke wrote:
> >
> > +sub _sort_positive_first
> > +{
> > +    my @sorted  = sort { $a <=> $b } @_;
> > +    # put positive values first
> > +    my @ret = grep { $_ >= 0 } @sorted;
> > +    push @ret, $_ for grep { $_ < 0 } @sorted;
> > +
> > +    return @ret;
> > +}
> 
> I rewrote the sort:
> 
>   @args = sort {
>       $a < 0 ? ( $b < 0 ? $a <=> $b : 1 ) :
>                ( $b < 0 ? -1 : $a <=> $b )
>     } @args;
> 
> DateTime::Event::Recurrence was uploaded to CPAN as
> version 0.15.
> I added a test for "modified parameter".

YMMV, but I find something like this more clear:

@args = sort { ($a < 0) <=> ($b < 0) || $a <=> $b } @args;

(literally, sort first by positive/negative, then by value).

Reply via email to