On Sat, Jul 31, 2010 at 11:47:13AM -0400, Brandon S Allbery KF8NH wrote:
> [...], and
> if the point is to be a general case statement then "when <expr> <block>"
> should smartmatch <expr> against $_ instead of evaluating it with $_
> available as a shorthand/topic.  

This is exactly what "when <expr> block" does -- it smartmatches
<expr> against $_.  The problem is that there are at least two 
interpretations of a true result of <expr>:

    when True { ... }    # execute when $_ is exactly "True"
    
    when foo() { ... }   # execute when foo() returns true

It's been decided that the latter is far more useful in general;
there are plenty of ways to express the former that are much
less ambiguous.

Pm

Reply via email to