Larry Wall skribis 2005-04-14 10:11 (-0700):
> Interestingly, if .{} defaulted to smart matching, ordinary .{'foo'}
> would essentially fall out of the samantics of "find me all the keys
> that smartmatch "foo", which is only one of them, presuming a hash
> that guarantees uniqueness. One could view .{} as Perl's version of
> SQL's "select".
@foos = %hash{ /^foo_/ } �.value;
Wow. I love that.
%handles{IO::Socket}
Nice.
But the best thing about this is that it makes junctions more
meaningful:
%hash{'foo' | 'bar' | 'baz'}
I think meant
%hash<foo> | %hash<bar> | %hash<baz>
But indeed, SELECTing with ~~ is more useful:
%hash{ IO::Socket | IO::File | 'foo' }
%hash{ grep { %hash{$_}.does(IO::Socket|IO::File) || exists %hash{$_} },
%hash.keys }
So, what's the important downside of all this?
Juerd
--
http://convolution.nl/maak_juerd_blij.html
http://convolution.nl/make_juerd_happy.html
http://convolution.nl/gajigu_juerd_n.html