We have a bit of a problem with negative operators applied to junctions,
as illustrated recently on PerlMonks.  To wit, when a native English 
speaker writes

    if $a != 1 | 2 | 3 {...}

they really mean one of:

    if not $a == 1 | 2 | 3 {...}
    if $a == none(1, 2, 3) {...}

or, expressed in current understanding of negated ops:

    if $a != 1 & 2 & 3 {...}
    if $a != all(1, 2, 3) {...}

They specifically do *not* mean

    if $a != any(1,2,3) {...}

since that would always be true.

I don't think we can allow this situation to stand.  Either we have
to make != and !~ and ne transform themselves via "not raising", or
we have to disallow negative comparisons on junctions entirely.

Opinions?

Larry

Reply via email to