Я хочу напечатать некоторые даты с сайта со структурой, подобной этой:
<tr><td><b><a href="/calendar.*?=\w+">(.*?)</a></b></td>
<td align=".*?"/date/(\d+)-(\d+)/">.*?</a> <a href="/year/\d+/">(\d+)</a></td>
<td>(.*?)*</td></tr>
и т.д.
my $country = $1;
my $month = $2;
my $day = $3;
my $year = $4;
my $event = $5;
Мне нужно извлечь только те, где $country
- это «США», но если я использую оператор while
, код будет бесконечно повторяться в течение первого совпадения. Как переработать скрипт для извлечения каждой найденной даты в США?
sub getSpec {
my $line = shift;
my $site = getSite($line);
while ($site =~ s/.../) {
my $country = $1;
my $month = $2;
my $day = $3;
my $year = $4;
my $event = $5;
if ($country =~ /USA/i) {
print $month.$date.$year.$country.$event."\n";
}
}
}