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.
      • by zatoichi (4897) on 2004.04.14 11:57 (#30094) Journal
        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

        • Like this?

              my $mode = (ref $hash->{CALLBACK} eq 'CODE'
                  ? kAEQueueReply
                  : (exists $hash->{REPLY}    # check event setting
                      ? $hash->{REPLY}
                      : exists $self->{REPLY}    # check global setting
                          ? $self->{REPLY}
                          : 1