Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number
 
PerlMonks  

Re^3: what would you like to see in perl5.12?

by blazar (Canon)
on Aug 20, 2007 at 22:02 UTC ( #633954=note: print w/ replies, xml ) Need Help??


in reply to Re^2: what would you like to see in perl5.12?
in thread what would you like to see in perl5.12?

I couldn't come up with any case where ->do{ was ambiguous. It's currently a syntax error.

I hadn't considered the curlies: I had seen them but kinda not really noticed them. (It's been a terribly hard day.) If I take the curlies into account I get a very "unorthogonal" deviation from all the rest of Perl syntax I can think of. A bareword, with curlies next to it. And should whitespace be allowed between them? Or is do{ to be thought of as a single glyph? Anyway you think of it, it's very ugly.


Comment on Re^3: what would you like to see in perl5.12?
Download Code
Re^4: what would you like to see in perl5.12?
by ysth (Canon) on Aug 21, 2007 at 01:00 UTC
    No, not a single glyph. Just a straightforward use of do BLOCK where it's not currently allowed.
      But then you have a bare arrow on the left. Let me see, you have a situation like:
      $foo -> THINGIE

      where THINGIE happens to be do BLOCK.

      With current syntax THINGIE can be:

      • a sub, array or hash dereferencing: (...), [...] and {...} respectively;
      • a bareword, interpreted like a method, with or without a pair of parens to pass parameters, if any: the latter, if present conveys a strong psychological feeling of being linked with the method itself as if they were a single thing;
      • a simple scalar value, to be interpreted as a symref (if not under strict) or a subref to be called like a method.

      All these thingies are "boxed", while yours look like the juxtaposition of two other thingies, with no surrounding box. It simply doesn't fit well, and is aesthetically unappealing.

      Granted, ->${\EXPR} looks awful, but it is an awful use of the existing syntax, which does not permit a more beautiful form. Your proposal makes for ugly syntax to start with: in all earnestness, looking at it from a distance it looks cleaner. But as you close up, you get an unsatisfactory feeling. Of course I would like to say that I have a much more beautiful proposal of my own, but no, I can't devise any...

      Update: striked out text above thanks to a /msg by ysth - "a simple scalar can always be a coderef or a method name (either qualified or not); the latter is unaffected by strict".

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others drinking their drinks and smoking their pipes about the Monastery: (5)
As of 2015-07-03 16:41 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (54 votes), past polls