То, что я пытаюсь сделать, это получить ключ пары ключ-значение в хэше, потому что все, что у меня есть из файла, в котором я читаю, это значение.
Код создает что-то вроде этого:
12345
welcome.html
Код для этой части:
my %bugs;
my $bug;
open(FH, '-|', "lynx -dump '$queryurl'") or die "Could not lynx $queryurl: $!";
while (<FH>)
{
if (/<bz:id[^>]*>([^<]*)</)
{
$bug = $1;
}
if (/<bz:url[^>]*>([^<]*)</)
{
my $url = $1;
$bugs{$url} = $bug;
$bug = undef;
}
}
close(FH);
# for debugging purposes
foreach my $bug (keys %bugs)
{
print "$bugs{$bug} $bug\n";
}
exit;
Затем, где-то еще в файле с именем bad.txt
Я получаю вывод как:
Documents that failed:
daerror 6 0 6 welcome.html
Код для чтения этого файла:
my $badfile = "$dir/bad.txt";
open(FH, "<$badfile") || die "Can not open $badfile: $!";
# ignore first line
<FH>;
while (<FH>)
{
chomp;
if (!/^([^ ]+) [^ ]+ [^ ]+ [^ ]+ ([^ ]+) [^ ]+$/)
{
die "Invalid line $_ in $badfile\n";
}
my $type = $1;
my $testdoc = $2;
}
Но у меня уже есть имя файла, извлеченное из него с помощью регулярного выражения.