Perl スクリプトでコンパイル済みの正規表現を実装しようとすると、一致に問題が発生します。プリコンパイルせずにスクリプトを動作させていますが、行にまたがるエクスプレスがあるときはいつでも、プリコンパイル時に一致が返されません。たとえば、次のようになります。
my $regex_partner = qr/<h1 id="PartnerName">(?<partner_name>.*?)<\/h1>/;
$content =~ $regex_partner;
$partner_name = $+{partner_name};
プリコンパイル時には問題なく動作しますが、次の点に注意してください。
my $regex_web =~ qr/Company Website:.*openWindow[(]'(?<website>http:\/\/.*?)'/s;
$content =~ $regex_web;
$website = $+{website};
何も返しませんが、プリコンパイル全体を取り出すと機能します。qr//s を使用すると、いつでも機能しないようです。
ヘルプ?