in reply to Array inside hashes

Just a note, \(1, 2, 3) was a good try, but it's actually interpreted as (\1, \2, \3). From perldoc perlref:

Taking a reference to an enumerated list is not the same as using square brackets--instead it's the same as creating a list of references! @list = (\$a, \@b, \%c); @list = \($a, @b, %c); # same thing! As a special case, `\(@foo)' returns a list of references to the contents of `@foo', not a reference to `@foo' itself. Likewise for `%foo', except that the key references are to copies (since the keys are just strings rather than full-fledged scalars).

So, as the previous posters mentioned, the solution is to use [1, 2, 3] instead of \(1, 2, 3).

Replies are listed 'Best First'.
RE: RE: Array inside hashes
by Anonymous Monk on Jul 22, 2000 at 22:35 UTC
    (Offer your reply needs a preview button :) Thanks everyone for their help! I knew I was missing something obvious. athomason mentioned \($a, @b, %c) is the same as (\$a, \@b, \%c). But is \[$a, $b, $c) the same as [\$a, \$b, \$c]? All the array elements are references, so I believe the first method would be cleaner.
    $a = "foo"; $b = "bar"; $c = "baz"; @list = \[$a, $b, $c]; foreach(@list) { print $$_ . "\n"; }
    Perl appears to set $list[0] to a reference to [$a, $b, $c]. Is there a less redundant way to say [\$a, \$b, \$c]?
RE: RE: Array inside hashes
by Anonymous Monk on Jul 22, 2000 at 22:33 UTC
    Thanks everyone for their help! I knew I was missing something obvious. athomason mentioned \($a, @b, %c) is the same as (\$a, \@b, \%c). But is \[$a, $b, $c) the same as \$a, \$b, \$c? All the array elements are references, so I believe the first method would be cleaner.
    $a = "foo"; $b = "bar"; $c = "baz"; @list = \[$a, $b, $c]; foreach(@list) { print $$_ . "\n"; }
    Perl appears to set $list[0] to a reference to $a, $b, $c. Is there a less redundant way to say \$a, \$b, \$c?