Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re^6: Convert undef to empty string in a hash

by Anonymous Monk
on Jan 16, 2015 at 10:22 UTC ( [id://1113478]=note: print w/replies, xml ) Need Help??


in reply to Re^5: Convert undef to empty string in a hash
in thread Convert undef to empty string in a hash

Actually, it can easily get out of whack: ... Now the maintenance programmer must ask: is this really the intent ... or is it a typo?

Why must he ask that?

Using the name once only makes the intent clearer, that is: makes it clear, at a glance, that the intent is to update a single hash, while gives the maintenance programmer a headache.

All three are equally clear at a glance (I glanced at them, equally clear, no headache)

Finally, with: to rename the foo hash to a better name you must change it in two places, rather than one, so there is (an admittedly small) chance of error when you are doing search-and-replace in your editor (code refactoring IDEs help here).

Well, if you're going to change the name, you already have to change it in more place than that one line ... and if you make a mistake, perl will tell you, as will your test suite ...

But why would you have to rename the hash to a better name after writing lines of code? Why wouldn't you start with a better name to begin with in the start if the beginning before writing the many lines of code? :D

  • Comment on Re^6: Convert undef to empty string in a hash

Replies are listed 'Best First'.
Re^7: Convert undef to empty string in a hash
by eyepopslikeamosquito (Archbishop) on Jan 16, 2015 at 10:52 UTC

    Why must he ask that?
    Because it looks wrong. And is not accompanied by a comment warning that, though it looks wrong, it is intended. Since you ask that question, I assume you haven't any experience maintaining large legacy code bases, with minimal test coverage, where the original authors have long since left the company.

    All three are equally clear at a glance (I glanced at them, equally clear, no headache)
    Yet you did not notice the difference between "immoral" and "immortal"?

      Why must he ask that? Because it looks wrong. And is not accompanied by a comment warning that, though it looks wrong, it is intended.

      Why does it look wrong? How does it look wrong?

      Since you ask that question, I assume you haven't any experience maintaining large legacy code bases, with minimal test coverage, where the original authors have long since left the company.

      Ugh, don't take this the wrong way, but that sounds like pure sundialsvc4ism

      If code is that bad, how can you trust when they wrote  $_ //= '' for values %number_of_immortal_perl_monks they really meant to write that? After all it has no comment explaining even though it looks correct, we didn't make a mistake, we understood it for real to be correct, for really real this time

      How can I learn when code "looks wrong"? I want to learn from you , can you teach me?

      All three are equally clear at a glance (I glanced at them, equally clear, no headache)
      Yet you did not notice the difference between "immoral" and "immortal"?

      I did notice it, your first example was also a typo, and like I already said, perl will notice, perl is very good at catching typos

        Ugh, don't take this the wrong way, but that sounds like pure sundialsvc4ism
        Well–played(!?!) and good”—day to “you” SIR !¡!

        You have won “our→‘little’battle” by playing–the sundialsvc4–♠‘card’♠  a-K-a  “Reductio ad sundialsvc4um”™.   Frankly, my dear, I don’t give a damn!©     upvoted.  Fav'd.    “++”

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others studying the Monastery: (5)
As of 2024-04-25 16:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found