On Wed, Sep 27, 2006 at 10:43:00AM -0600, Luke Palmer wrote: : Well, there are a few ways to do that: : : given lc $lang {...} : : when { lc eq 'perl' } {...} : : when insensitive('perl') {...}
With the latest change to S05 that auto-anchors direct token calls, you can now alo write: when token { :i perl } {...} By the way, your 0-ary "lc" needs to be written ".lc" these days. In Chicago we outlawed most of the 0-or-1-ary functions since we now have a 1-character means of specifying $_ as invocant. : Where the last one is a user-defined function which can be written: : : sub insensitive($str) { /:i ^ $str $/ } : : Such "pattern functions" can be useful in a variety of contexts. That : is, write functions which are designed explicitly to be used in the : conditions of when statements. I guess that can also now be written: my &insensitive ::= token ($str) :i { $str }; or maybe even my &insensitive ::= token :i { $^str }; Larry