Я бы просто использовал if
операторы, потому что они намного понятнее и проще для расширения:
if (length($number) == 4) {
# extension
} elsif (length($number) == 7) {
# no area code
} elsif (length($number) == 10) {
# full number
} else {
die "unsupported number";
}
Если вы используете Perl 5.10 или выше, вы можете использовать switch
:
use feature "switch";
given (length($number) {
when (4) { # extension }
when (7) { # no area code }
when (10) { # full number }
default { die "unsupported number"; }
}
Любой из них дает преимущество в том, что его легко изменить, например, взять число, начинающееся с 1 (т. Е. 1-555-123-4567).