Slash Boxes
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

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • I certainly don't agree with replacing "if else" with "? :". You throw your readability out the window, IMO. But I guess that is what makes it "extreme".
    • Each has it's use in it's place. Use "? :" when you need to return a value in a statement inline. E.g.,
      my $x = $test ? $y : $z;
      # is better (disclaimer - IMHO) than:
      my $x;
      if ($test) {
        $x = $y;
      } else {
        $x = $z;
      All of the examples of "? :" in that document (that I can see) are similar to this, so they're ok. Using "? :" in a void context is arguably not so good.
      • my $x = $test ? $y : $z;

        I can understand doing the above becuase visually you can isolate that line and grok it quickly. When you use it in a larger "else if" context you loose that visual recognition.

        • How about:

            my $foo =   ( $bar =~ /pattern/ )
                      ? ( some expression )
                      : ( some other expression );
          • I do something very similar to this in my code on a regular basis - What I normally do is shift the ternary operators back onto the leading line so that it is immediately apparent that the line has not ended. For example:

            my $foo = ( $bar =~ /pattern/ ) ?
                      ( some expression ) :
                      ( some other expression );

            This of course is more of a question of style than anything else, and I know that I am somewhat obtuse and anal at times with regard to my