我有一个类似的哈希:
abc=>1
hello=>32
abc=>4
hello=>23
hello=>12
xyz=>18
Run Code Online (Sandbox Code Playgroud)
我们如何连接其键相同的值.所以输出将是:
abc=>"1,4"
hello=>"23,12,32"
xyz=>"18".
Run Code Online (Sandbox Code Playgroud)
我尝试通过键排序哈希然后检查每个键,如果它们相同然后连接值,但我没有得到如何比较同一循环中的两个键.
提前致谢.
这种工作的确切方式取决于数据的真实来源,但是该程序显示了一种从DATA文件句柄中读取信息以构建和转储哈希的方法.
散列值是匿名数组,包含与同一个键对应的所有值.
use strict;
use warnings;
my %data;
while (<DATA>) {
my ($k, $v) = /\w+/g;
push @{ $data{$k} }, $v;
}
for my $k (sort keys %data) {
printf "%s => %s\n", $k, join ',', @{ $data{$k} };
}
__DATA__
abc=>1
hello=>32
abc=>4
hello=>23
hello=>12
xyz=>18
Run Code Online (Sandbox Code Playgroud)
产量
abc => 1,4
hello => 32,23,12
xyz => 18
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4809 次 |
| 最近记录: |