0

私は 3 次元ハッシュと 2 次元ハッシュを持っており、2 次元ハッシュを 3 次元ハッシュの内部ハッシュの 1 つとマージしたいと考えています。これは、2 次元ハッシュのペアをマージするために行うことと似ています。 :

my %3dhash;
my %2dhash;
my $key = "some string";
%3dhash{$key} = ($3dhash{$key}, %2dhash);

しかし、私がそれを試みたとき、それはうまくいきませんでした。私は何をすべきですか?

4

1 に答える 1

2

次のことを試してください。

my %hash3d;
my %hash2d;
....
my $key = "some string";
$hash3d{$key} = { %{ $hash3d{$key} }, %hash2d };

Perl の変数は数字で始めることができないため、変数の名前を変更しました。%{ ... }既存のハッシュを囲むと、リストとして展開されます。このリストは、 のリストで平坦化され%hash2dます。そのリストの{ ... }周りには、匿名のハッシュ参照コンストラクターがあり、新しいハッシュ参照を作成し、それを次に格納します。$hash3d{$key}

于 2010-10-28T20:35:57.163 に答える