On Fri, 5 Apr 2002 [EMAIL PROTECTED] wrote:

> Does one of these items not belong?
> 
> >From Exegesis 4:
> 
> This new turbo-charged 'smart match' operator will also work on arrays, hashes and 
>lists:
> 
> 
>     if @array =~ $elem {...}        # true if @array contains $elem
>     
>     if $key =~ %hash {...}          # true if %hash{$key}
>     
>     if $value =~ (1..10) {...}      # true if $value is in the list
>     
>     if $value =~ ('a',/\s/,7) {...} # true if $value is eq to 'a'
>                                     #   or if $value contains whitespace
>                                     #   or if $value is == to 7
> 
> It's very cool--but why is it $key =~ %hash but $value =~ @array rather than one way 
>or the other?

Probably because you never really want to find out whether some value is 
in a hash, you just want to know whether a key has a value to look up. If 
you need to know whether a value is in a hash, it'd be good to rethink 
your design.

That and it's stupid to see if an index is in an array. You can just say 
$ind < @array. So, it DWIMs. In my opinion, it does so very well.

Reply via email to