【发布时间】:2013-02-28 01:24:27
【问题描述】:
为什么会产生错误:
在 ... 处使用未初始化的值 $match 替换 (s///)
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 循环中的每一行)并且正则表达式替换肯定有效,因为它已经在自己的程序中进行了测试,然后我尝试将它移动到这个程序。
我忽略了什么明显的东西吗?
非常感谢您的帮助,非常感谢
【问题讨论】:
-
感谢正确缩进代码
-
抱歉,感谢提醒
标签: regex perl initialization substitution