http://www.perlmonks.org?node_id=1056104


in reply to Re^5: Why doesn't Perl provide %_ as the hash equivalent of @_ in subs? (ugly++)
in thread Why doesn't Perl provide %_ as the hash equivalent of @_ in subs?

sub withNames{ local %_ = @_; ++$_{$_} for keys %_; };;

Try  ++$_ for values %_;

:P lol

Yeah, local %_=@_; is not hard to type :)

Replies are listed 'Best First'.
Re^7: Why doesn't Perl provide %_ as the hash equivalent of @_ in subs? (ugly++)
by BrowserUk (Patriarch) on Sep 28, 2013 at 07:02 UTC
    Try ++$_ for values %_;

    That improves things:

    sub sansNames{ ++$_ for @_; };; sub withNames{ local %_ = @_; ++$_ for values %_; };; cmpthese -1,{ a=>q[ withNames( 1 .. $_*2 ) for 1..5 ], b=>q[ sansNames( 1..$_ ) for 1 .. 5 ] };; Rate a b a 35072/s -- -71% b 122333/s 249% --

    Though ... a benchmark of named parameters that doesn't use the names to access the parameters ... :)


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.