Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??
"Considered Harmful" Essays Considered Harmful ;-)

Seriously, there's something I find questionable. You show how chained mutators can be abused and dangerous, and the solution is "please don't" write the mutators to support this usage (unless I misunderstood and the "please don't" only applied to doing the chaining, rather that writing the mutator that way). Going back to the famous "goto considered harmful essay", that would be like saying that, since goto can be abused, languages shouldn't have a goto. While this is a nice purist position to take, decades after the essay many real-life, pragmatic language designers include goto anyway and leave the responsibility of using it wisely (if needed) to the user. I choose to do the same: I allow the mutators I write to be chained, even if in practice I only chain them in limited cases where they are really clear (in my opionion).

Of course, if you really want to return an error code from your mutators, please go ahead and be consistent. I think returning the value that was set is useless, as others have said in this thread. But if the choice is between an undefined return value and returning $self, why not return $self and let the user do whatever he or she wants with it?


In reply to Re: Mutator chaining considered harmful by itub
in thread Mutator chaining considered harmful by Aristotle

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":



  • Are you posting in the right place? Check out Where do I post X? to know for sure.
  • Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
    <code> <a> <b> <big> <blockquote> <br /> <dd> <dl> <dt> <em> <font> <h1> <h2> <h3> <h4> <h5> <h6> <hr /> <i> <li> <nbsp> <ol> <p> <small> <strike> <strong> <sub> <sup> <table> <td> <th> <tr> <tt> <u> <ul>
  • Snippets of code should be wrapped in <code> tags not <pre> tags. In fact, <pre> tags should generally be avoided. If they must be used, extreme care should be taken to ensure that their contents do not have long lines (<70 chars), in order to prevent horizontal scrolling (and possible janitor intervention).
  • Want more info? How to link or How to display code and escape characters are good places to start.
Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others wandering the Monastery: (3)
As of 2024-03-29 02:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found