Yes it is. Because it's awkward to write:
if ((COND1 || COND2) && !(COND1 && COND2))
specially when either condition is either expensive,
or has side-effects.
A while ago, I was writing a small script that recursively
compared directories (and no, plain diff didn't do, although
the script called diff repeatedly). Since I was interested
in the similarities instead of the differences, at one moment
next if -d $dir1 xor -d $dir2
If either of the arguments wasn't a directory, but the
other was, they couldn't match. But if both were, or both
weren't, furthermore analysis was necessary.
And yes, I know, xor can be written using other
primitives as well. But that's not an argument, unless you
also think 'for', 'while' and other looping constructs
are redundant, because we have 'goto'.
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:
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, 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, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.
| & || & |
| < || < |
| > || > |
| [ || [ |
| ] || ] ||