Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine
 
PerlMonks  

Why are my functions second-class citizens?

by geary@acm.org (Initiate)
on Feb 15, 2012 at 16:30 UTC ( #953996=perlquestion: print w/ replies, xml ) Need Help??
geary@acm.org has asked for the wisdom of the Perl Monks concerning the following question:

So, let's say, purely for the sake of argument, that I have a function like:

sub rv (@) { reverse @_; };
and I want to call it in this context:
sort rv @list;
Perl won't let me because it thinks I'm trying to use &rv as the comparison function for sort. I could say:
sort(rv(@list));
but that doesn't look as cool.

This works:

sort reverse @list;
How do get perl to treat &rv the same way?

Comment on Why are my functions second-class citizens?
Select or Download Code
Replies are listed 'Best First'.
Re: Why are my functions second-class citizens?
by Old_Gray_Bear (Bishop) on Feb 15, 2012 at 17:01 UTC
    Don't code for 'cool', code for clarity.

    ----
    I Go Back to Sleep, Now.

    OGB

Re: Why are my functions second-class citizens?
by choroba (Canon) on Feb 15, 2012 at 16:43 UTC
Re: Why are my functions second-class citizens?
by LanX (Canon) on Feb 15, 2012 at 16:52 UTC
    Some people want this DWIM functionality, which inhibits to Do What You Mean.

    Instead of fiddling with this magical syntax, I'd recommend writing a function my_sort with a clear interface to do what you want.

    Cheers Rolf

Re: Why are my functions second-class citizens?
by JavaFan (Canon) on Feb 15, 2012 at 17:55 UTC
    If you don't like the sort-cut sort is offering you, you can always be explicit:
    sort {$a cmp $b} rv @list;

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://953996]
Approved by Old_Gray_Bear
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (15)
As of 2015-07-31 17:53 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (279 votes), past polls