なぜこれがエラーを生成するのですか?
置換(s ///)での初期化されていない値$matchの使用...
my $sub = 0; #added
my $m; #added
open (FH1, "<FILE1.txt") || die $!;
open (FH2, "<FILE2,txt") || die $!;
my @strings = (<FH2>); #each line of the file into an array
close FH2 or die $!;
my $here;
while ( my $url = <FH1> ) {
chomp $url;
foreach my $sub (@strings) {
my $repeat = 1;
while ((my $m = $_) =~ s|(?<![/])(?:[/](?![/])[^/]*){$repeat}[^/]*\K|$sub|) #<-- Error states the error is occurring here
{
print "$m\n";
$repeat++;
push( @{ $here->{$url} }, $m );
}
}
}
ファイルには間違いなく何かがあり(ループ内の各行を印刷できるためforeach
)、正規表現の置換は、このプログラムに移動する前に独自のプログラムでテストされているため、間違いなく機能します。
私が見落としているのは明らかなことですか?
あなたの助けは大いにありがたいです、多くの感謝