加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

创建一个哈希,其中键是一个数组,值是一个数组数组

发布时间: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'
           ]
    };

看起来是对的.当然,我从未验证过各种阵列的大小都是一样的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读