我正在尝试使用perl创建哈希表。请帮助我,因为我正在接受perl和我正在阅读,但我无法实施。我需要从下面的代码数据编号创建哈希表作为键和描述作为值。
答案 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数据会是什么样的,所以我不知道数组的位置。