Попробуй это./g
в конце регулярного выражения позволяет ему переходить от совпадения к совпадению в последовательных вызовах, отслеживая его положение в строке по мере продвижения.См. «Глобальное соответствие» в «perldoc perlretut», Учебное пособие по Perl RegExpt.
Скобка, которую я добавил около ($re)
, фиксирует результат соответствия и присваивает его $1
.Смотрите также «Извлечение совпадений» в «perldoc perlretut»;
while( my $line = <DATA>) {
chomp ($line); #removing the unwanted new line character
my $re = $RE{URI}{HTTP}{-scheme=>'https?'}{-keep};
while ( $line =~ /($re)/g ){
my $uri = $1;
$uri=~s/[,\']//g;
print "$uri\n" if ($uri);
}
}