SPUG: basic array question
Mathew D. Watson
matw at eclipse-optics.com
Tue May 10 14:40:31 PDT 2005
I'm studying some perl fundamentals, and I'm cooking up examples
convince myself that I understand (or don't) what perl is doing. Here's
an "I don't" that I'm hoping you folks can explain.
#!/usr/bin/perl -w # line 1
@a = (@x = (1, 2, 3), $y = 'a', 9); # line 2
$a = (@x = (1, 2, 3), $y = 'a', 9); # line 3
$b = @a; # line 4
Please correct me if I write something wrong.
@a on line 2 has the value (1, 2, 3, 'a', 9), which makes sense. The
right hand side is evaluated in a list context because the variable on
the left hand side is an array.
$a on line 3 has the value 9, which is the last element of the array on
the rhs. What is the rule at work here? Is the rhs considered an array?
I'm not sure what context the rhs is evaluated in.
$b on line 4 has the value 5, the number of elements in @a, which is
what I thought might happen with $a on line 2. @a is evaluated in a
scalar context because the lhs is a scalar. Why aren't $a and $b the same?
More information about the spug-list