Perl - Как найти ключ хеша, если вы знаете его значение?

Я пытаюсь получить ключ пары ключ-значение в хэше, потому что все, что у меня есть из файла, который я читаю, - это значение .

Код создает что-то вроде этого:

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 Я получаю такой результат:

Неудачные документы: 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;
}

Но у меня уже есть имя файла, извлеченное из него с помощью регулярного выражения.

6
задан Robie 25 February 2015 в 08:34
поделиться