Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

comment on

( [id://3333]=superdoc: print w/replies, xml ) Need Help??

I find that a lot harder to read. It decouples the logic from the individual parts of the list so it only works at all for lists where nearly every part is conditional, like the example I gave. If you want to conditionally include only one thing in a much larger unconditional list it really breaks down. Contrast:

join '/', 'foo', 'bar', $baz, 'quux', ( @qux ) x!! $somecond, $wibble, + $wobble; # vs join '/', map { defined $_->[-1] ? $_->[0] : () } ( [ 'foo' ], [ 'bar' ], [ $baz ], [ 'quux' ], [ @qux, $somecond ], [ $wibble ], [ $wobble ], );

Maybe you find the second one easier to read than the first, but I don’t. It gets a little clearer with each element on its own line (in particular, the $somecond gets completely lost in the noise if you put several elements on each line), but then you’ve gone from a single line to 10.

Your proposed solution is worth considering, but is useful only in limited circumstances. I was trying to find an option that would work in a wide range of cases.

I have to note that my proposed composite operator ()x!! is not that option, either: it doesn’t shortcircuit (nor do any of the clever alternatives given, yours included), and that has killed it in every case I might have used it since writing this node. I might find the syntactical requirements of the ternary onerous, but another option – not even a better one, but any option at all – has yet to show up. Sigh.

Makeshifts last the longest.


In reply to Re^2: Secret Perl Operators: the boolean list squash operator, x!! by Aristotle
in thread Secret Perl Operators: the boolean list squash operator, x!! 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 pondering the Monastery: (3)
As of 2024-04-16 05:44 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found