$foo
と$bar
にリストを割り当てようとしています(割り当ての中の括弧を使って... parensはリストを表しています)。本当に割り当てたいものはハッシュ参照です。
Perlでは、データ構造の第1レベルの下にあるものは参照でなければなりません。 $foo
と$bar
割り当てにおいて
$bar => (# <-- that parens denotes a list
FormFields => $SecondXML,
SignFields => $SecondXMLign,
) # <--
、私は括弧に指摘括弧変更:$foo => {...}, $bar => {...}
、無名ハッシュ(基準)を表します。
全体のハッシュ割り当ては次のようになります。
my %PDFData = (
$foo => {
FormFields => $FirstXML,
SignFields => $FirstXMLSign,
},
$bar => {
FormFields => $SecondXML,
SignFields => $SecondXMLign,
},
);
あなたの代わりにハッシュのハッシュ内の配列を希望した場合、あなたは括弧[
と無名配列を表し]
、(参照)を使用したいです:
my %hash = (
$foo => [
1,
2,
],
$bar => [
3,
4,
],
);
はまた、自身が複雑なデータ構造をトラブルシューティング/デバッグするための最初のステップとして、視覚を得るのを助けるためにData::Dumperを知るようになります。ここでは、ハッシュリファレンスの割り当て対(リスト)を持っていたものの一例です:
use warnings;
use strict;
use Data::Dumper;
my %h = (
first_level => (
second_level => 1,
),
);
print Dumper \%h;
%h = (
first_level => {
second_level => 1,
},
);
print Dumper \%h;
...と、ここでは、出力の違いです:
# the list assignment output
$VAR1 = {
'1' => undef,
'first_level' => 'second_level'
};
# the proper hash ref method output
$VAR1 = {
'first_level' => {
'second_level' => 1
}
};