Beefy Boxes and Bandwidth Generously Provided by pair Networks vroom
Don't ask to ask, just ask
 
PerlMonks  

Re: shift vs @_

by Anonymous Monk
on Oct 03, 2006 at 04:27 UTC ( [id://576013]=note: print w/replies, xml ) Need Help??

This is an archived low-energy page for bots and other anonmyous visitors. Please sign up if you are a human and want to interact.


in reply to shift vs @_

Suppose you'd write a function like map, its first argument plays a very different role than the rest - which can be any length. Wouldn't it make sense to write:
sub my_map { my $special_thingy = shift; foreach my $item (@_) { apply($special_thingy, $item); } }
Starting with
my ($special_thingy, @list_of_items) = @_;
is a potentially costly operation, since you are copying everything else in @_ - and it is slightly different as you lose the aliasing. And writing:
sub my_map { foreach my $item (@_[1 ..$#_]) { apply($_[0], $item); } }
or
sub my_map { for (my $i = 1; $i < @_; $i++) { apply($_[0], $_[$i]); } }
is not something I fancy.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://576013]
help
Sections?
Information?
Find Nodes?
Leftovers?
    Notices?
    hippoepoptai's answer Re: how do I set a cookie and redirect was blessed by hippo!
    erzuuliAnonymous Monks are no longer allowed to use Super Search, due to an excessive use of this resource by robots.