我有2个数组,我想用它来制作哈希
use warnings;
use strict;
use List::MoreUtils;
use Tie::IxHash;
my %KEY_VALUE;
tie %KEY_VALUE,'Tie::IxHash';
my @KEY= qw(
0
0
5
1
1
1
2
2
2
2
3
4
);
my @VALUE= qw(
A
B
C
D
E
F
G
H
I
J
K
L
);
@KEY_VALUE{@KEY}=@VALUE;
print join("\t",%KEY_VALUE);
Run Code Online (Sandbox Code Playgroud)
我得到的结果是:
0 B 5 C 1 F 2 J 3 K 4 L
Run Code Online (Sandbox Code Playgroud)
这是因为%KEY_VALUE的值不断更新,在这种情况下,它只能有1个Key和1个Value.
所以,我想知道是否有一种方法可以保存所有值及其相应的键.
预期结果:
0 A B 5 C 1 D E F 2 G H I J 3 K 4 L
Run Code Online (Sandbox Code Playgroud)
只需将值推送到存储在每个键下的数组引用即可.但是,您无法直接输出结构.
#!/usr/bin/perl
use warnings;
use strict;
use Tie::IxHash;
tie my %key_value,'Tie::IxHash';
my @keys = qw( 0 0 5 1 1 1 2 2 2 2 3 4 );
my @values = qw( A B C D E F G H I J K L );
push @{ $key_value{ $keys[$_] } }, $values[$_] for 0 .. $#keys;
print join ' ', map "$_ @{ $key_value{$_} }", keys %key_value;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |