in reply to Re^2: (CLPM) reorder via swap
in thread (CLPM) reorder via swap

Beautiful and elegant... it's simplicity like this that always reminds me why I love this language.

But please help me out a little. What is the + operator doing here? I know that @{+pop} is somehow saying the same as @{pop()}, but I'm not sure why. ...And while I'm on the subject, why am I not allowed to simply say @{pop} (besides the fact that I've used a split infinitve)?

Replies are listed 'Best First'.
Re^4: (CLPM) reorder via swap
by japhy (Canon) on Aug 18, 2004 at 14:58 UTC
    When you say @{bareword}, Perl doesn't do anything to the bareword, and thinks you're just enclosing the variable name in braces. The reason this is useful is when you're printing something like "the ${n}th time", where you want $n, not $nth.

    The + here disambiguates things; it tells Perl that this is not just a "roped-off" variable name, it's an expression to be evaluated.

    _____________________________________________________
    Jeff japhy Pinyan, P.L., P.M., P.O.D, X.S.: Perl, regex, and perl hacker
    How can we ever be the sold short or the cheated, we who for every service have long ago been overpaid? ~~ Meister Eckhart