08/02/11 02:25:54
現在、与えられた文字列を読み込み、それを元にHTMLを出力するプログラムを作成しています。
与えられた文字列の中に特定のキーワードを見つけると、それをリンクに変換するようにしたいと考えています。
例:
[google:hoge] → <a href="URLリンク(www.google.co.jp)">Googleでhogeを検索</a>
[mixi:xxxxx] → <a href="URLリンク(mixi.jp)">mixi</a>
URLリンク(xxx.xx)<)">URLリンク(xxx.xx<)
こういった置換を行うコードを1つずつ書くのではなく、
例えば、以下のような置換パターンをセットしたハッシュを用意しておき
%hash = (
'\[google:\w+\]' => '<a href="URLリンク(www.google.co.jp)">Googleで$1を検索</a>',
)
forやforeachで回しながら自動的に置換したいのですが、どのようにすればよいでしょうか。
(エンコードとかは考えない方向で)
foreach my $key (keys %hash)
{
$input_str =~ s/$key/$hash{$key}/g;
}
とやった場合、変換後の文字列の中に「$1」そのものが入ってしまいます。