key : value
配列の参照をperlのハッシュテーブルのペアの値として割り当てることは可能ですか?
24521 次
4 に答える
29
はい、そうです。バックスラッシュを使用して、配列への参照を作成します。
$hash{key} = \@array;
これは実際の配列にリンクするため、次のような変更を実行する場合は次のようになります。
$array[0] = "foo";
$hash{key}[0]
これは、がに設定されていることも意味し"foo"
ます。
それが希望しない場合は、匿名配列参照を使用して値をコピーできます[ ... ]
。
$hash{key} = [ @array ];
さらに、これを行うために配列を調べる必要はありません。直接割り当てることができます:
$hash{key} = [ qw(foo bar baz) ];
perldocperlrefで参照を作成する方法の詳細を読む
于 2012-12-20T04:15:54.243 に答える
10
はい。このようなデータ構造にアクセスするためのいくつかの基本的なルールについては、 http://perlmonks.org/ ?node = References + quick + referenceを参照してください。ただし、データ構造を作成するには、次のいずれかを実行します。
%hash = ( 'somekey' => \@arrayvalue );
$hash{'somekey'} = \@arrayvalue;
%hash = ( 'somekey' => [ ... ] );
于 2012-12-20T04:16:02.270 に答える
-1
use Data::Dumper; @name=('5/17',
'5/17','5/17','5/17','5/17','5/17','5/17','5/17'); @status_flags=('U
H L','U C','U H L','U C','U C','U H L','U C', 'U H L');
@ip_address=('192.168.0.11','192.168.0.2','192.168.0.13','192.168.0.0','192.168.0.3','192.168.0.12','192.168.0.4','192.168.0.14'); @dp_id=('0','0','0','0','0','0','0','0');
@ip_prefix_length=('32','32','32','24', '32', '32','32','32');
for ($value=0;$value<=5;$value++) {
$keyvals{'Response'}{'brocade-extension-ip-route'}{'extension-ip-route'}={'name'=>"$name[$value]"};
$keyvals{'Response'}{'brocade-extension-ip-route'}{'extension-ip-route'}={'dp-id'=>"$dp_id[$value]"};
$keyvals{'Response'}{'brocade-extension-ip-route'}{'extension-ip-route'}={'ip-address'=>"$ip_address[$value]"};
$keyvals{'Response'}{'brocade-extension-ip-route'}{'extension-ip-route'}={'ip-prefix-length'=>"$ip_prefix_length[$value]"};
$keyvals{'Response'}{'brocade-extension-ip-route'}{'extension-ip-route'}={'ip-gateway'=>'*'};
}
print Dumper \%keyvals;
Each array value assign into hash value. $var1= {
'Response' => {
'extension-ip-route' => {
'status-flags' => 'U H L '
,
'ip-gateway' => '*',
'name' => '0/2',
'ip-address' => '192.168.20.11',
'dp-id' => '0',
'ip-prefix-length'=>'32'
}
}
};
于 2017-07-06T16:53:17.600 に答える
-1
%hash = ( 'somekey' => \@arrayvalue );
$hash{'somekey'} = \@arrayvalue;
It is right. We can assign either hash or hash reference format.
于 2019-07-13T18:21:26.730 に答える