I'm not really sure what your criteria for duplicates is, but this produces the results you requested from the data you gave:
#!/usr/bin/perl
use warnings;
use strict;
use Data::Dumper;
my $hash;
my %results;
for my $row( split("\n",join('',<DATA>)) ){
my($key1,$key2,$val) = split('\|_\|',$row);
next if $results{$val} and $hash->{$key1}->{$key2};
$hash->{$key1}->{$key2}=$val;
$results{$val}=1;
}
print Dumper $hash;
__DATA__
200326951|_|rel_Access1|_|200315482|_|
200326951|_|rel_Access1|_|200315786|_|
200326951|_|rel_Access2|_|200315482|_|
200326951|_|rel_Access2|_|200315786|_|