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


in reply to Re: Array of variables
in thread Array of variables

Ok, I'm confused....
perl -le '($x, $y, $z) = (1, 2, 3); @a = ($x, $y, $z); print join ( " +", map { $_++, $_ } @a )' __output__ 1 2 2 3 3 4
...or more (which I believe) is more similar to the OP's example:
perl -le 'my @a; my ($x, $y, $z) = (1, 2, 3); @a = ($x, $y, $z); print + $a[1]; $a[1]++, print $a[1];' __output__ 2 3
Am I not breaking it correctly? :)

Replies are listed 'Best First'.
Re^3: Array of variables
by frozenwithjoy (Priest) on May 28, 2013 at 20:54 UTC
    What part of what you wrote are you confused about?

      I thought I replicated the OP's code, but did not have a problem with the post-increment of the array element. So, I am confused that my code seems to work, whereas the OP's does not.

      Note how my output does increment the elements. Did I present code that replicates the OP's scenario, or am I off target here?

      Thanks!
        The difference is that you are actually printing the thing you are incrementing rather than incrementing one item and printing another completely distinct item. What the OP did is more like the final print statement here:
        perl -E ' my ( $x, $y, $z ) = ( 1, 2, 3 ); my @a = ( $x, $y, $z ); say join " ", map { $_++, $_ } @a; say "@a"; say "$x $y $z"; ' 1 2 2 3 3 4 2 3 4 1 2 3