私はハッシュの配列を作成しようとしています。各ハッシュは結び付けられ、順序付けられたIxHashになっています。私の最初のハッシュをループするとき、キーは確かに正しいです。ただし、それらを配列にプッシュするとすぐに、順序が消えます。これは、ハッシュが配列にプッシュされたときにハッシュで何が起こっているのかについての私の知識が乏しいことを知っていますが、誰かが私を啓発することができれば、それは大いにありがたいです。
#! /usr/bin/perl -w
use strict;
use Data::Dumper;
use Tie::IxHash;
my @portinfo;
tie (my %portconfig, 'Tie::IxHash',
'name' => [ 'Name', 'whatever' ],
'port' => [ 'Port', '12345' ],
'secure' => [ 'Secure', 'N' ]
);
print "Dump of hash\n";
print Dumper(%portconfig);
print "\nDump of array\n";
push @portinfo, {%portconfig};
print Dumper(@portinfo);
これの出力:-
Dump of hash
$VAR1 = 'name';
$VAR2 = [
'Name',
'whatever'
];
$VAR3 = 'port';
$VAR4 = [
'Port',
'12345'
];
$VAR5 = 'secure';
$VAR6 = [
'Secure',
'N'
];
Dump of array
$VAR1 = {
'secure' => [
'Secure',
'N'
],
'name' => [
'Name',
'whatever'
],
'port' => [
'Port',
'12345'
]
};