Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Is there any difference between prototype % and @ ?

by LanX (Canon)
on Feb 22, 2013 at 14:12 UTC ( #1020169=note: print w/ replies, xml ) Need Help??


in reply to Re: Is there any difference between prototype % and @ ?
in thread Is there any difference between prototype % and @ ?

> Hope that helps,

thanks, it does, though it was what I expected it helps to know the official truth...

> It doesn't even bother to check whether you have an even number of arguments.

which is - mildly expressed - "unfortunate". I will add a manual check.

Cheers Rolf


Comment on Re^2: Is there any difference between prototype % and @ ?
Re^3: Is there any difference between prototype % and @ ?
by AnomalousMonk (Abbot) on Feb 22, 2013 at 20:33 UTC
    ... an even number of arguments...
    I will add a manual check.

    What are you doing with the arguments subsumed under the  % prototype? Well, right now you're probably just writing test code to check the behavior of the prototype, but in a 'real world' case, would you not assign these arguments to a hash? What else? If assigning an odd number of elements to a hash, Perl warns (if warnings are enabled) with no separate check necessary. Granted, the warning doesn't stem from the prototype checking system, but...

    >perl -wMstrict -le "sub H (&%) { my ($cr, %h) = @_; $cr->(%h); } ;; H { print @_; } qw(a 1 b); " Odd number of elements in hash assignment at -e line 1. Use of uninitialized value $_[3] in print at -e line 1. a1b
      not in this case, cause I want to have it as fast and memory saving as possible.

      thats why I'm splicing... though using indexes $_[$i] should be even faster...

      just check the post I linked in the OP

      Cheers Rolf

        not in this case, cause I want to have it as fast and memory saving as possible.

        Then why create a list from the hash in the first place?


        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.

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others chilling in the Monastery: (12)
As of 2015-07-03 06:54 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 (48 votes), past polls