Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

Wednesday September 11, 2002
08:16 PM

Death to letters

[ #7690 ]

Douglas Wilson sent me a ternary operator alternative to my do {} happiness. I like the parallel structure and the visual appeal.

my ($var1, $var2) =
   ($sw == 5) ? (1,2)
  :($sw == 4) ? (3,4)
  :($sw == 3) ? (5,6)
  :($sw == 2) ? (6,7)
  :             (8,9);

Since he eliminated the if-elsif typing, I wondered if I could eliminate the rest of the
letters. If I allow myself to use special variables, I cannot use my() (since special variables are always package variables) and any letters in the variable names.

($\, $/) =
   ($_ == 5) ? (1,2)
  :($_ == 4) ? (3,4)
  :($_ == 3) ? (5,6)
  :($_ == 2) ? (6,7)
  :            (8,9);

And then if I can get rid of extra whitespace...

No, I am not going to do that. I have not entered an Obfuscated Perl Contest yet and I do not want to start. Down that path lies madness.

This reminds me of an answer with no semicolons.