创建一个哈希,其中键是一个数组,值是一个数组数组
发布时间:2020-12-15 23:22:20 所属栏目:大数据 来源:网络整理
导读:我正在尝试创建一个哈希,其中键包含在数组中,值包含在数组的数组中: my @keys = (1,2,3,4,5);my @value1 = (a,b,c,d,e);my @value2 = (f,g,h,i,j);my @value3 = (k,l,m,n,o);my @values = ([@value1],[@value2],[@value3]);my %hash; 我想创建一个哈希,其中
我正在尝试创建一个哈希,其中键包含在数组中,值包含在数组的数组中:
my @keys = (1,2,3,4,5); my @value1 = (a,b,c,d,e); my @value2 = (f,g,h,i,j); my @value3 = (k,l,m,n,o); my @values = ([@value1],[@value2],[@value3]); my %hash; 我想创建一个哈希,其中@keys为键,@ value为值,因此键’1’将返回值a,f,k(每个数组中的第0个元素),依此类推. 对于单个密钥,这将实现如下: %hash=('key'=>@values); 但我不确定如何为一组键修改它. 任何帮助都会很棒! 干杯, ? 解决方法
我利用语法$foo [$i] [$j];将数组数组表示为二维数组.这是一个没有地图的答案:
#! /usr/bin/env perl use 5.12.0; use warnings; use Data::Dumper; my @keys = qw(alpha beta gamma delta epsolon); my @values1 = qw(one two three four five); my @values2 = qw(uno dos tres quatro cinco); my @values3 = qw(a b c d e); my @values = ( @values1,@values2,@values3 ); my %hash; for my $item ( (0..$#keys) ) { my @array; push @array,$values[0][$item],$values[1][$item],$values[2][$item]; $hash{$keys[$item]} = @array; } say Dumper %hash; 这是输出: $VAR1 = { 'gamma' => [ 'three','tres','c' ],'delta' => [ 'four','quatro','d' ],'alpha' => [ 'one','uno','a' ],'beta' => [ 'two','dos','b' ],'epsolon' => [ 'five','cinco','e' ] }; 看起来是对的.当然,我从未验证过各种阵列的大小都是一样的. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |