0
我有一個散列哈希值,在最後一級,我想要追加每個值 - 未更新 - 如果該值已經存在。什麼是最好的方法來做到這一點?我在想使值的列表,但是這可能不是最有效的方式...如何在Perl中添加新的散列值
這裏就是我有這麼遠:
#!/usr/local/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $dir='D:\';
open my $data,"<","$dir\\file.txt";
my (@selecteddata,@array,%hash);
while (<$data>) {
chomp $_;
my @line= split "\t";
$hash{$line[1]}{$line[2]}=$line[0];
warn Dumper \%hash;
}
close $data;
注意,這個代碼在最後一個級別更新值值爲$line[0]
,但是如果密鑰$line[4]
已經存在(意思是說,它已經有一個以前的值$line[0]
)我希望這個值被附加,而不是更新。
所以,理想情況下,下列(標籤sepparated)名單:
a1 b1 c1
a2 b2 c2
a3 b3 c3
a4 b4 c4
a5 b4 c4
哈希會是這個樣子 - 我不知道a4
和a5
分組究竟是如何應該是什麼樣子,所以只要它們的分組應該是確定:
{
'b1' => {'c1' => 'a1'},
'b2' => {'c2' => 'a2'},
'b3' => {'c3' => 'a3'},
'b4' => {'c4' => 'a4, a5'}
}