sub remove_from_dtgs {
my ($dtg,$file) = @_;
for my $i (reverse 0 .. $#files) {
splice @{$dtgs{$dtg}}, $i, 1 if $dtgs{$dtg}[$i] eq $file;
}
delete $dtgs{$dtg} unless @{$dtgs{$dtg}};
}
####
sub remove_from_dtgs {
my ($dtg,$file) = @_;
for my $i (reverse 0 .. $#files) {
if ($dtgs{$dtg}[$i] eq $file) {
splice @{$dtgs{$dtg}}, $i, 1;
delete $dtgs{$dtg} unless @{$dtgs{$dtg}};
last;
}
}
}
####
open(my $dtg_file, "<", $infile) or die "Unable to open $infile: $!\n";
while(<$dtg_file>) {
chomp;
my ($dtg,@files) = split /:/;
$dtgs{$dtg}{$_}++ for @files;
}
close $dtg_file;
sub remove_from_dtgs {
my ($dtg,$file) = @_;
delete $dtgs{$dtg}{$file};
delete $dtgs{$dtg} if !keys %{$dtgs{$dtg}}
}