我有两个长度相等的Perl数组,例如 -
@year = ('1995', '2003', '1997', '1995', '2012');
@title = ('dog', 'rabbit', 'tiger', 'lion', 'elephant');
Run Code Online (Sandbox Code Playgroud)
我想将它们转换为哈希,其中多年为关键,标题为值,因此我可以对它们进行排序,操纵它们等,但将它们转换为直接哈希将删除重复项,例如1995年发生两次.
在保留重复密钥实例的同时将此数据转换为哈希的最佳方法是什么?
使用数组哈希(HoA):
#!/usr/bin/perl
use warnings;
use strict;
my @year = qw(1995 2003 1997 1995 2012);
my @title = qw(dog rabbit tiger lion elephant);
my %hash;
for my $idx (0 .. $#year) {
push @{ $hash{ $year[$idx] } }, $title[$idx];
}
for my $year (sort { $a <=> $b } keys %hash) {
print "$year: ", join(', ', @{ $hash{$year} }), "\n";
}
Run Code Online (Sandbox Code Playgroud)
输出:
1995: dog, lion
1997: tiger
2003: rabbit
2012: elephant
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
166 次 |
| 最近记录: |