in reply to Re^3: Pearls (not really) of Perl programming
in thread Pearls (not really) of Perl programming
Now that you've drawn my attention to the code again. I say it is that baroque. My initial justification was just for the and 1 stuff which I still don't find so bad.
I would still like a or $a cmp $b or a or 0 or die "domain err". It is not readily apparent what is to happen with other/other comparisions. This seems like a significant decision point in the code (by the identifiers) and so a good place for extra clarity. I can imagine myself referring to this snippet to understand how all the subsequent parsing code is recieving data. This may be such a recurring problem in the codebase that it seems unimportant.
What does irk is the inconsistent use of short-circuiting, the sub-clauses are unnecessary and so confusing. (I just trusted that aspect the first time around.
If I were going to write in that form I'd write something like:
Be well.@List = sort { $a eq "one" and -1 or $b eq "one" and 1 or $a eq "two" and -1 or $b eq "two" and 1 # no need to check if $a eq one or $a eq "thr" and -1 or $b eq "thr" and 1 or 0 # advertising the default case }
|
|---|