0

perlを使用してハッシュテーブルを作成しようとしています。私はperlを始めたばかりで、読んでいますが、実装できませんので、助けてください。以下のコードデータ番号をキーとして、説明を値としてハッシュテーブルを作成する必要があります。

4

1 に答える 1

2

XMLのような一般的なデータ形式の場合、ファイルを1行ずつ読み取り、自分で解析して手動でこれを実行しようとしないでください。代わりに、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データに含まれるテスト番号が1つだけであり、これがこのコードで処理されるすべてであるということです。それ以上を処理したい場合は、おそらくどこかの配列をループする必要があります。xmlデータがもっとあるとどうなるかわからないので、配列がどこにあるかわかりません。

于 2011-10-03T07:45:38.480 に答える