http://qs321.pair.com?node_id=11115104


in reply to Regex to Array lookup question

Something like the following should do it efficiently:
my %keys = ( 'skc' => "clear-day", 'few' => "partly-cloudy-day", 'sct' => "partly-cloudy-day", 'bkn' => "cloudy", 'wind' => "wind", ); my $keys = join '|', map quotemeta, sort keys %keys; my $pattern = qr/(....)($keys)(...)/; while (<DATA>) { s/$pattern/$1$keys{$2}$3/; print; }

Dave.