From: Felix Geerinckx <[EMAIL PROTECTED]>
> Using your datastructure, this would indeed be rather complicated. If
> you could use the datastructure I proposed at the beginning of this
> post, you could write

I don't think it's wise to overwrite a function definition over an 
over again. Create an unnamed function:
 
>     sub sortit {
>         my $array = shift;
>         my $code = 'sub sortfun { ';

         my $code = 'sub { ';

>         my $first = 1;
> 
>         while (@_) {
>             my $s = shift;
>             my $d = shift;    
>             $code .= ' || ' unless $first;
>             $first = 0;
>             $code .= $d eq 'A' ?
>                      "\$a->{$s} cmp \$b->{$s}" :
>                      "\$b->{$s} cmp \$a->{$s}" ;
>    }
>        $code .= '}';
>        undef &sortfun;
>        eval $code;
>        my @result = sort sortfun @$array;

The last three lines become:

                my $sortfun = eval $code;
                my @result = sort $sortfun @$array;

>        return \@result;    
>     }

This may be combined with the code I posted. So then you get what you 
are after.

Jenda
=========== [EMAIL PROTECTED] == http://Jenda.Krynicky.cz ==========
There is a reason for living. There must be. I've seen it somewhere.
It's just that in the mess on my table ... and in my brain
I can't find it.
                                        --- me


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to