in reply to Re^4: Declare and slice-initialize hash in one statement?
in thread Declare and slice-initialize hash in one statement?

I'm not adverse to using the minutiae of Perl's syntax, but that is just a little subtle for my taste. I also get confused about when the use of & implies reusing the current @_.


Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.

Replies are listed 'Best First'.
Re^6: Declare and slice-initialize hash in one statement?
by Roy Johnson (Monsignor) on Oct 27, 2005 at 17:46 UTC
    Without &, parentheses are optional and prototypes are observed. With &, prototypes are ignored and you must supply parens, or @_ gets inherited.

    Caution: Contents may have been coded under pressure.

      Yeah, just too darn subtle.

      sub x (\@\@) { print "@_" } @_ = qw[ some random junk retained from the current level of call ]; @a = 1..10; @b='a'..'g'; x @a, @b; ARRAY(0x1961458) ARRAY(0x196156c) &x( @a, @b ); 1 2 3 4 5 6 7 8 9 10 a b c d e f g &x, @a, @b; some random junk retained from the current level of call

      Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
      Lingua non convalesco, consenesco et abolesco. -- Rule 1 has a caveat! -- Who broke the cabal?
      "Science is about questioning the status quo. Questioning authority".
      In the absence of evidence, opinion is indistinguishable from prejudice.
        You realize you aren't passing any arguments to &x in the last example?