使用perl脚本生成哈希表

时间:2011-10-03 07:19:26

标签: xml perl perl-data-structures

我正在尝试使用perl创建哈希表。请帮助我,因为我正在接受perl和我正在阅读,但我无法实施。我需要从下面的代码数据编号创建哈希表作为键和描述作为值。

1 个答案:

答案 0 :(得分:2)

对于像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文件被加载到hashref中,您可以访问该哈希并将其组织到您想要的结构中。

# 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数据会是什么样的,所以我不知道数组的位置。