PHP では、strtr
配列の入力を受け入れ、文字列内のすべてのキーの出現を置き換えることができ、最も長いキーが最初に試行されます。
Perlに同等の機能はありますか?
うん、単純な正規表現:
# Where %h contains your key => value mappings
my $keys = join '|', sort {length($b) <=> length($a)} keys %h;
$a =~ s/($keys)/$h{$1}/g;
評価する正規表現を手動で作成するのではなく、次のようにData:: Munge の list2re 関数を使用します。
my $re = list2re sort {length($b) <=> length($a)} keys %h;
$a =~ s/($re)/$h{$1}/g;