Dear Monks
I have a file format like so:
200326951|_|rel_Access1|_|200315482|_|
200326951|_|rel_Access1|_|200315786|_|
200326951|_|rel_Access2|_|200315482|_|
200326951|_|rel_Access2|_|200315786|_|
I want to read this file and build a hash. I have the following code:
my %hash;
open(CMD1, "< test.txt");
while (<CMD1>) {
my @elts = split(/\|_\|/, $_, -1);
my $p = \\%hash;
$p = \( ${$p}->{$_} ) for @elts;
}
use Data::Dumper;
print Dumper(\%hash);
However, that gives me a hash like so:
$VAR1 = {
'200326951' => {
'rel_Access2' => {
'200315482' => {
'' => undef
},
'200315786' => undef
},
'rel_Access1' => {
'200315482' => {
'' => undef
},
'200315786' => {
'' => undef
}
}
}
};
What can I do to get a hash like the following:
$VAR1 = {
'200326951' => {
'rel_Access2' => '200315786'
},
'rel_Access1' => '200315482'
}
};
Basically, I'm looking to discard duplicate values. This is a slightly tricky example, since in this one, the second line gets discarded because the second field (rel_Access1) was already present in the first line, and the third line gets discarded because the third field (200315482) was present in the result..
Many thanks!