$str
に含まれるものに応じて、 "afoo"または "foob"のいずれかを印刷することです。初期化されていない後方参照
私はno warnings;
を使用できますが、他の「本当の」警告が表示されなくなるのではないかと心配しています。私はまた、1つのパターンを使用すると複雑になることがわかりますが、実際のパターンははるかに複雑です。
あなたは、実際の交換を気にしている場合に近い:基本的には上記のコードは、単に検索を取得&置き換えるためにDBから読み込んだ後、テンプレートにそれらを行い、
#!perl
my $search = q~(document\.domain.*?</script>)|(</head>)~;
my $search_re = qr/$search/smo;
my $replace = q("$1
<script src=\"/library.js\"></script>
$2");
while (<*.tmpl>) {
my $str = fead_file($_);
$str =~ s/$search_re/$replace/gee;
}
しかし、さらに複雑。すべてのコミットでこのスクリプトを2回実行すると、あまりにも多くのオーバーヘッドが導入されてしまうはずです... ...
ループ内で2つの異なる検索と置換操作を行うだけではどうですか?オーバーヘッドは、ファイルを読み取るだけの時間に比べて検出不可能でなければなりません。 – Nemo
ループは私が変更できないライブラリです。私は代用品しか提供できません。 – Rob