Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re^3: Use of the m/.../g idiom in list context (formatting MAC addresses) (use of fat commas)

by merlyn (Sage)
on Jan 17, 2005 at 17:28 UTC ( #422792=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Use of the m/.../g idiom in list context (formatting MAC addresses) (use of fat commas)
in thread Use of the m/.../g idiom in list context (formatting MAC addresses)

I dislike "cute" uses of fat arrow, because the following code is broken:

use constant COMMA => ','; ... my $result = join COMMA => @list; # should be: my $result = join COMMA, @list;
Yes, smart people know that fat arrow autoquotes the left argument. But why should you require your code to be maintained by smart people?

Be kind to your maintenance programmer. Don't use fat arrow except when you want the quoting feature.

-- Randal L. Schwartz, Perl hacker
Be sure to read my standard disclaimer if this is a reply.


Comment on Re^3: Use of the m/.../g idiom in list context (formatting MAC addresses) (use of fat commas)
Download Code
Re^4: Use of the m/.../g idiom in list context (formatting MAC addresses) (use of fat commas)
by tye (Cardinal) on Jan 17, 2005 at 20:12 UTC

    I also dislike cute uses of fat comma. It was meant to separate a hash key from a hash value. And in Perl6, using it for something other than that is likely to break (as near as I can tell).

    I only use fat comma when the thing on the left is a string (which all hash keys must be) and the thing on the right is a scalar (which all hash values must be). If it weren't for the immediate proliferation of cute uses of fat comma, fat comma might have been improved to provide scalar context to it's right so that my %hash= ( foo=>getFoo(), bar=>getBar() ); would no longer be susceptible to getFoo returning an empty list (or more than one item).

    But I do sometimes use fat comma when the left-hand side must not be quoted, just like I sometimes use $hash{...} when the key expression must not be quoted. These are a couple of the reasons why I make it a habit to write COMMA() not COMMA if it is a constant (subroutine).

    When I see =>, I think "key => value". Some people use cute fat commas to provide extra separation between things. Some people use cute fat commas to show a closer association between two items (like it was intended to be used when listing the key/value pairs for a hash). Some people use cute fat commas to indicate a direction of flow (which can only be done it one direction, of course). I'm surprised these people don't get really annoyed at other people's conflicting uses of fat comma. If the fat comma doesn't mean "key => value", then it is just (usually minor) obfuscation to me, since I don't keep a list of which authors use their cute fat commas which ways; I only track what the purpose of the fat comma was.

    - tye        

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (4)
As of 2014-12-27 11:58 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    Is guessing a good strategy for surviving in the IT business?





    Results (177 votes), past polls