use warnings; use strict; use Data::Dumper; my $str = ; my %states = map {$_ => 1} $str =~ /'([A-Z]{2})'/g; print Dumper \%states; __DATA__ if($link->text ne 'AK' && $link->text ne 'KY' && $link->text ne 'AS' && $link->text ne 'MA' && $link->text ne 'MI' && $link->text ne 'CO' && $link->text ne 'DC' && $link->text ne 'GA' && $link->text ne 'IN' && $link->text ne 'MD' && $link->text ne 'CT' && $link->text ne 'AR' && $link->text ne 'ID' && $link->text ne 'IL' && $link->text ne 'CA' && $link->text ne 'AL' && $link->text ne 'ME' && $link->text ne 'DE' && $link->text ne 'GU' && $link->text ne 'FL' && $link->text ne 'IA' && $link->text ne 'LA' && $link->text ne 'HI' && $link->text ne 'KS' && $link->text ne 'AZ')