Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

Re^2: What operator should perl5porters use for safe dereferencing?

by Boldra (Deacon)
on May 31, 2012 at 07:20 UTC ( [id://973448]=note: print w/replies, xml ) Need Help??


in reply to Re: What operator should perl5porters use for safe dereferencing?
in thread What operator should perl5porters use for safe dereferencing?

If it's mnemonic, what does it remind you of?
  • =~ match
  • $~ $FORMAT_NAME
  • ~~ smart match
For me, Tanktalus' argument about the typing is more convincing than a mnemonic argument.


- Boldra
  • Comment on Re^2: What operator should perl5porters use for safe dereferencing?

Replies are listed 'Best First'.
Re^3: What operator should perl5porters use for safe dereferencing?
by BrowserUk (Patriarch) on May 31, 2012 at 09:23 UTC
    If it's mnemonic, what does it remind you of?

    I did say: "(hand) wavey dereference".

    As for your examples $fred~>$bill looks nothing like $str =~ $re; or when $ref ~~ @things:.

    I'm not sure if that last example is valid syntax. I've never user smart matching in real code. I've tried it a few times when I thought it might work for me, but it either didn't do what I thought it would or gave a syntax error. I don't try any more.

    And as for $~, it not only looks completely different to ~>, I've never seen it used in code outside of its own documentation; and possibly obfu.

    A more poignant example might be something to do with boolean negation: ~$mask, but I tried and couldn't think of a single valid expression that looked vaguely similar.

    For me, Tanktalus' argument about the typing is more convincing ...

    "touch typists" who find things 'difficult to type' drive me nuts. The only people I've ever seen reach touch tying speeds when typing code, were copy typists.

    Programmers on the other hand, type a few symbols; pause; back up and change the variable name; pause; change it again; back up two lines and change the if to a while; then switch screens and look up an API; switch back and undo the last set of changes and start over...

    'sides, on my keyboard, it is left-shift '.', left-shift '#'. Easy :) Now if I could change the scalar sigil from $ to £, that would save me having to correct at least one Unrecognized character \xA3 in column 4 at... in just about every piece of new code I type.

    For me the strongest argument against it is that it looks so similar to ->. But actually, given its purpose, I even consider that a strength. Most of the time, the subtle difference will be completely transparent semantically and the subtle visual difference reflects that. Ie. It doesn't demand undue attention.

    And for those occasions when the difference is important; the code immediately following will have to reflect the fact that an undefined reference may exist.


    But in the end, someone, somewhere will make a decision based upon some reasoning, and it will satisify some and not others.


    With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
    Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
    "Science is about questioning the status quo. Questioning authority".
    In the absence of evidence, opinion is indistinguishable from prejudice.

    The start of some sanity?

      I've never user smart matching in real code. I've tried it a few times when I thought it might work for me, but it either didn't do what I thought it would or gave a syntax error. I don't try any more.
      Me too.
      Now if I could change the scalar sigil from $ to £, that would save me having to correct at least one Unrecognized character \xA3 in column 4 at... in just about every piece of new code I type.

      Acme::Currency to the rescue! :-)

Re^3: What operator should perl5porters use for safe dereferencing?
by pvaldes (Chaplain) on Jun 13, 2012 at 09:14 UTC

    if we talk about mnemmonic rules...

    if you want to be safe "go to the hospital"

    +>

    But I must admit that is much less readable

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others about the Monastery: (4)
As of 2024-04-20 13:31 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found