use Tie::RefHash; tie my %m, "Tie::RefHash"; %m = ( qr/abc/ => "ABC", qr/def/ => "XYZ", ); $str = "def"; for my $r ( keys %m ) { if( $str =~ $r ) { $str = $m{$r}; last; } } print $str, "\n"