in reply to Re^6: Control Structures
in thread Control Structures
There's only one module that I know of that does switch/case, and it's a source filter, and doesn't do C-style fall-through. Like Perl6, it behaves like multiple ifs, trying every condition, even after one has matched.
Maybe I'll make a module for C-style case, and it will make it into the core module set (hey, a guy can dream), but until then, there is nothing wrong with having your own library of tools that you find handy. Yeah, it's not as nice as having them built-in, but you can't have everything (even in Perl 6!)
Here's a more streamlined version of my case factory. I don't know whether it makes the short-circuiting more clear.
sub case_new { my $matched = 0; return sub { my $check = shift; return $matched ||= (ref $check eq 'Regexp' and /$check/) || $_ eq $check; } }
|
|---|