in reply to Using Number Ranges in a Dispatch Table
I think using given Switch statements gives you much more flexibility, as it uses smart matching and can do lots of clever things. You do have to type a bit more but it's worth it ;)
So something like this :-
use v5.14; use warnings; sub ident_number { my ($num) = @_; given ($num) { when ('01') { say 'geographic'; } when (/^\d+$/ && $_ >= 124 && $_ <= 140) { say '124 - 140'; } when ([143 .. 146, 148 .. 149]) { say "$_ other stuff"; } when ([181 ..189]) { say '181 -- 189'; } default { say "$_ not found"; } } } my @tests = qw/ 01 02 125 127 186 500 143 149 189/; for (@tests) { ident_number($_); }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Using Number Ranges in a Dispatch Table
by tobyink (Canon) on Feb 19, 2012 at 22:15 UTC |
In Section
Seekers of Perl Wisdom