As it has been mentioned, this isn't a new idiom at all. We have forever been saying open $fh, $mode, $file or die "Can't open $file: $!", and of course, that same approach generalizes to any kind of error handling.

This is one of the facets of Perl's adherence to linguistic principles. (I think Larry mentions that in his essay about the subject.) It tries to let the programmer arrange expressions in whichever way he deems necessary to stress the really important part. That's why we have the statement modifiers, for example. next if $long_and_complex_conditional_here is a familiar and beloved sight in Perl code; I often cringe when I'm in C world and have to arrange the same thing the other way around.

That is no particular reason to hate unless, of course. if vs unless is just another of these facets: it lets you build expectations appropriately. I use unless when I expect that the condition will only rarely be true. For me, if not is an indication that the condition will tend to go either way, or even be true more often than not — the opposite of the same thing expressed with unless.

Makeshifts last the longest.


In reply to Re: A new idiom -or- I Hate Unless by Aristotle
in thread A new idiom -or- I Hate Unless by erikharrison

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



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.