I want to read this file and build a hash. I have the following code:200326951|_|rel_Access1|_|200315482|_| 200326951|_|rel_Access1|_|200315786|_| 200326951|_|rel_Access2|_|200315482|_| 200326951|_|rel_Access2|_|200315786|_|
However, that gives me a hash like so: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);
What can I do to get a hash like the following:$VAR1 = { '200326951' => { 'rel_Access2' => { '200315482' => { '' => undef }, '200315786' => undef }, 'rel_Access1' => { '200315482' => { '' => undef }, '200315786' => { '' => undef } } } };
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..$VAR1 = { '200326951' => { 'rel_Access2' => '200315786' }, 'rel_Access1' => '200315482' } };
In reply to hash from CSV-like structure by manav_gupta
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |