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') #### 'IN' => 1, 'FL' => 1, 'MD' => 1, 'MA' => 1, 'GU' => 1, 'DE' => 1, 'ID' => 1, 'KS' => 1, 'IA' => 1, 'LA' => 1, 'KY' => 1, 'ME' => 1, 'AR' => 1, 'HI' => 1, 'AK' => 1, 'GA' => 1, 'MI' => 1, 'AZ' => 1, 'CO' => 1, 'DC' => 1, 'AS' => 1, 'CA' => 1, 'IL' => 1, 'AL' => 1, 'CT' => 1 #### ... my %states = ( 'IN' => 1, 'FL' => 1, 'MD' => 1, 'MA' => 1, 'GU' => 1, 'DE' => 1, 'ID' => 1, 'KS' => 1, 'IA' => 1, 'LA' => 1, 'KY' => 1, 'ME' => 1, 'AR' => 1, 'HI' => 1, 'AK' => 1, 'GA' => 1, 'MI' => 1, 'AZ' => 1, 'CO' => 1, 'DC' => 1, 'AS' => 1, 'CA' => 1, 'IL' => 1, 'AL' => 1, 'CT' => 1 ); #### if (! $states{$link->text}){ ... } #### my @state_abbrs = qw( IL MI AZ CT ... CO DC AS GA ... ); my %states = map {$_ => 1} @state_abbrs; if (! $states{$link->text}){ ... }