Я пытаюсь получить все номера телефонов NA из файла CSV.Числа могут появляться где угодно в каждой строке, и каждая строка также может иметь несколько чисел (разделенных запятыми).Приведенное мной регулярное выражение работает, по крайней мере, захватывает первый номер телефона в строке.Но, несмотря на использование флага "/ g", он не будет захватывать другие телефонные номера.Кто-нибудь может подсказать, что может быть не так с моим кодом?
#!/usr/bin/perl
use warnings;
use diagnostics;
use strict;
my $data_file = "test.csv";
open my $FH, "<", $data_file || die "cannot open file\n";
my @lines = <$FH>;
while (@lines) {
if ((shift @lines) =~ /((\(\d{3}\)\s+|\d{3}-?|\d{3}\.?)(\d{3}-?|\d{3}\.?)\d{4})/g) {
print "$1\n";
} else {
print "No match\n";
}
}