Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

RE: Dynamic sort algorithm selection

by dchetlin (Friar)
on Nov 15, 2000 at 05:53 UTC ( #41698=note: print w/replies, xml ) Need Help??


in reply to Dynamic sort algorithm selection

That should work just fine as you have it (and has worked that way as far back as 5.004, at least). You can have the name of the subroutine in the scalar passed to sort.

Not only that, but you can go one better. You can pass sort a reference to a subroutine. This is safer and cleaner and faster than using the name of the sub.

my $sortref = \&firstname_descending; my @order = sort $sortref keys %data;

For best results, combine this approach with a dispatch table that does your subroutine lookup.

-dlc

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://41698]
help
Chatterbox?
[Eily]: It can also be used to force a copy, and remove magic from a variable
[Eily]: there was a post some time ago about variable coming from regex taking more space than the same string defined directly IIRC
[Eily]: and if there's XS, make sure the scalar holds a string representation, that sounds like bad practice though (forcing that on the call side)
[choroba]: You should never pass $1 without double quotes to a sub
[choroba]: or "I should never", at least
[choroba]: that's not the sub's business

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (8)
As of 2018-02-22 17:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    When it is dark outside I am happiest to see ...














    Results (296 votes). Check out past polls.

    Notices?