in reply to Re: Re: Truncate a string (news lead?)
in thread Truncate a string (news lead?)

/me kicks himself.

You're right, though for a different reason. It seems to me that, in this particular case, YY ($1) cannot be false, as it contains at least one character, then one of !?., then a whitespace character. Which cannot be false. Or, if the match fails, it contains nothing and therefore is false as it is supposed to be. Usually.

However, it might contain the $1 from a previous match, which makes you right. Again.

  • Comment on Re: Re: Re: Truncate a string (news lead?)

Replies are listed 'Best First'.
Re: Re: Re: Re: Truncate a string (news lead?)
by merlyn (Sage) on Sep 13, 2001 at 23:51 UTC
    You're right that it probably would not have made any difference in this particular case.

    But that's the problem. I keep seeing that meme pop up, being used by people who don't understand that it is not "if-then-else" but something that acts a bit like it most of the time.

    So, I can't let one like that go by without comment. Since ?: is actually shorter to type, I'd greatly prefer that this other ugly thing be eliminated and the proper operator introduced at every opportunity.

    -- Randal L. Schwartz, Perl hacker

Re: Re: Re: Re: Truncate a string (news lead?)
by blakem (Monsignor) on Sep 13, 2001 at 22:40 UTC
    I was looking at this last night and came to pretty much the same conclusion... the potential for a nasty bug is there (hence the 'XX && YY || ZZ' construct should be avoided), but in this specific case I don't see it happening.

    However, it might contain the $1 from a previous match...

    In that case, the regex failed to match, so you never evaluate the $1 anyway. (i.e. XX is false, so even if YY contains something unexpected, we never actually get tripped up by it)

    -Blake