This is a program rather than a sub. It is 160 chars without unnecessary whitespace. I don't know what you are supposed to do with 1 and 0. Get another phone number I guess. ;-)
#!/usr/bin/perl -snl
BEGIN{
for ($N) {
s/[10]//g;
s/2/[abc]/g;
s/3/[def]/g;
s/4/[ghi]/g;
s/5/[jkl]/g;
s/6/[mno]/g;
s/7/[pqrs]/g;
s/8/[tuv]/g;
s/9/[wxyz]/g
}
}
/^$N$/oi&&print
You can run it like this:
phonenum -N=7375 /usr/dict/words
I tried this with most of my friends' and family's phone numbers and none of them generated any words. :-(
John.
--