Yes, good points which also occurred to me in the sleepless wee small hours. Just goes to show that you shouln't post when over-tired :-(
Slightly more robust, given the assumtion that the state abbreviation is always followed by a 5-digit ZIP code.
use strict;
use warnings;
my %states = (
CA => q{California},
MA => q{Massachusetts},
IL => q{Illinois},
PA => q{Pennsylvania},
MI => q{Michigan},
NJ => q{New Jersey},
IN => q{Indiana},
);
my $rxStateAbbrev = do {
local $" = q{|};
qr{(?x) \b ( @{ [ keys %states ] } ) \b (?= \s+ \d{5} ) };
};
while ( <DATA> )
{
s{ $rxStateAbbrev }{ $states{ $1 } }x;
print;
}
__END__
Tommy Savage:408-724-0140: 12 2 2 Oxbow Court, Sunnyvale, CA 94087: 5/
+19/66: 34200
Lesle Kerstin: 408-456-123 4: 4 Harvard Square, Boston, MA 02133: 4/22
+/62: 52600
JonDeLoach: 408-253-3 122: 12 3 Park St. , San Jose, CA 94086: 7/25/53
+: 85100
Ephram Hardy:293-259-5395: 2 3 5 Carlton Lane, Joliet, IL 73858: 8/12/
+20: 56700
etty Boop: 245-836-83 57: 63 5 Cutesy Lane, Hollywood, CA 91464: 6/23/
+23: 14500
Wilhelm Kopf:846-836-2837 : 693 7 Ware Road, Milton, PA 93756: 9/21/46
+: 43500
Norma Corder:397-857 -2735: 74 Pine Street, Dearborn, MI 23874: 3/28/4
+5: 245700
James Ikeda: 834-938-8376: 2 3 445 Aster Ave. , Allentown, NJ 83745: 1
+2/1/38: 45000
Lori Gortz: 327-832-5728: 3 465 Mirlo Street, Peabody, MA 34756: 10/2/
+65: 35200
Barbara Kerz:385-573 -8326: 83 2 Ponce Drive, Gary, IN 83756: 12/15/46
+: 268500
|