http://qs321.pair.com?node_id=23946


in reply to \($a, $b, $c) eq (\$a, \$b, \$c), is \$a, $b, $c eq \$a, \$b, \$c?

Let's have a look at the '\', '[]' and '()' constructs: So using the special braces '[' and ']' creates a reference to an array. If you use the normal braces '(' and ')' you group things into lists, so: So if we use the [$a, $b, $c] construct our list @list will contain one element, namely a reference to an array. If we on the other hand use the ($a, $b, $c) construct, the list will contain 3 elements.

So then, an easier way to write [\$a, \$b, \$c] would be [ \($a, $b, $c) ]. But still, this will not fix your example - I hope you can see the error in the example, but let's fix it:

$a = "foo"; $b = "bar"; $c = "baz"; @list = \($a, $b, $c); foreach(@list) { print $$_ . "\n"; }
Autark.