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

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.

Replies are listed 'Best First'.
Re^7: Declare and slice-initialize hash in one statement?
by BrowserUk (Patriarch) on Oct 27, 2005 at 17:59 UTC

    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?

        Yes, but it is oh so subtle isn't it?

        Or rather, I am, but not what was intended.


        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.