The stupid question is the question not asked | |
PerlMonks |
Re: \ Operator in referencing (unusual)by tye (Sage) |
on Aug 06, 2004 at 15:39 UTC ( [id://380604]=note: print w/replies, xml ) | Need Help?? |
Why the distinction? Why are there two seperate behaviors? Because the author of that feature thought it was a neat idea. Note that if your thinking on flattened lists were correct then \(@a,@b,@c) would be the same as map {\$_} @a,@b,@c which is the same as (\(@a),\(@b),\(@c)) (which would make this quirk of \(...) less interesting). But instead \(@a,@b,@c) is the same as (\@a,\@b,\@c). And \(@a,(@b),@c) is the same as (\@a,\(@b),\@c) which is the same as ( \@a, map(\$_,@b), \@c ). What is happening that creates the difference in behavior? The C code that was added to the perl.exe source code to implement \ specifically looks for parens and does something different when it sees them. There is no general principle of Perl that explains this quirk of \(...). It is just specific to \ and that is just the way that it was implemented. The one thing I don't like about it is that it is different from how anything else in Perl works (and so is surprising, at least when you first run into it). But that is a fairly minor problem and the fairly minor utility of the shortcut makes it an acceptable design, IMHO. - tye
In Section
Seekers of Perl Wisdom
|
|