создание хеш-таблицы с использованием скрипта Perl - PullRequest
0 голосов
/ 03 октября 2011

Я пытаюсь создать хеш-таблицу, используя perl. Пожалуйста, можете помочь мне, потому что я начинающий Perl и я читаю, но я не могу реализовать. мне нужно создать хэш-таблицу из кода номера кода в качестве ключа и описание в качестве значения.

1 Ответ

2 голосов
/ 03 октября 2011

Для распространенного формата данных, такого как XML, не пытайтесь делать это вручную, читая файл построчно и анализируя его самостоятельно.Вместо этого используйте модуль Perl, чтобы сделать это за вас.

Для начала вам может быть достаточно модуля XML :: Simple .Я думаю, что модуль уже установлен в вашей системе по умолчанию.

use strict;   # tip: always use strict and warnings for safety
use warnings;

use Data::Dumper;
use XML::Simple;

my $data = XMLin(\*DATA); # loads up xml into a hash reference assigned to $data
print Dumper $data;       # uses Data::Dumper to print entire data structure to console

# the below section emulates a file, accessed via the special DATA file handle
# but you can replace this with an actual file and pass a filename to XMLin()
__DATA__
<DATA>
    <!-- removed -->
</DATA>

ОБНОВЛЕНИЕ

Теперь, когда XML-файл загружен в хэш-ссылку, вы можете получить доступ к этому хешу и организовать его вструктура, которую вы хотите.

# loads up xml into a hash reference assigned to $data
my $data = XMLin(\*DATA);

# organise into [testnumber => description] mappings
# not sure if 'Detection' is what you meant by 'description'
my %table = ( $data->{Testnumber} => $data->{Detection} );

Проблема этого сценария состоит в том, что данные xml содержат только один номер теста, который обрабатывает весь этот код.Если вы хотите обрабатывать больше, то вам, вероятно, нужно где-то перебрать массив.Я не знаю, как будут выглядеть XML-данные, если их будет больше, поэтому я не знаю, где будет массив.

...