Beefy Boxes and Bandwidth Generously Provided by pair Networks
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??


in reply to \ Operator in referencing

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        

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://380604]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others rifling through the Monastery: (4)
As of 2024-04-18 06:34 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found