more useful options | |
PerlMonks |
\ Operator in referencingby dsb (Chaplain) |
on Aug 06, 2004 at 12:32 UTC ( [id://380510]=perlquestion: print w/replies, xml ) | Need Help?? |
dsb has asked for the wisdom of the Perl Monks concerning the following question:
perlref states that there is a difference between taking a reference to a list, and a reference to an array:
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 I have two questions:
Based on these examples, my best guess is that the parentheses are the key. Going back to the "if it looks like a function, then it is a function" philosophy behind the interpreter, I guess \() does look like a function. As such, \("one","two","three") and \(@list) gets executed like a function call with n arguments (3 in the case of the list). @list gets flattened like any other list passed as an argument and so the behavior is basically the same for both cases. That's my best guess anyway...
dsb This @ISA my cool %SIG
Back to
Seekers of Perl Wisdom
|
|