diff --git a/perl/exit_strategy.pl b/perl/exit_strategy.pl index cbbbd03ce8e642e0bd639792d84ed510097b2a67..d584095c3f13a5e96e3973a568d1c37c945433c4 100644 --- a/perl/exit_strategy.pl +++ b/perl/exit_strategy.pl @@ -324,15 +324,10 @@ sub check_if_db_conform ($$) { my $repids = $xp->find($compiled_xpath_amdsecs); #/mets:mets/mets:amdSec my $repid; my @repnodes = $repids->get_nodelist; - if (scalar @repnodes == 0) { - say STDERR "No reppid found in file $filename, is IE purged?"; - my %tmp; - $tmp{"filename"}=$filename; - $tmp{"purged"}=1; - return \%tmp; - } elsif (scalar @repnodes == 1) { + my $found = scalar @repnodes; + if (1 == $found) { $repid = $repnodes[0]->findvalue($compiled_xpath_id); - } else { #multiple representations found + } elsif ($found > 1) { #multiple representations found # choose reppid with LZA, LZA_INTERN or LOCAL (for very old IEs) foreach my $node (@repnodes) { my $id = $node->findvalue($compiled_xpath_id); @@ -348,6 +343,12 @@ sub check_if_db_conform ($$) { } #print XML::XPath::XMLParser::as_string($node), "\n\n"; } + } elsif (0 == $found) { + say STDERR "No reppid found in file $filename, is IE purged?"; + my %tmp; + $tmp{"filename"}=$filename; + $tmp{"purged"}=1; + return \%tmp; } if (!defined $repid) { say "No repid found in file $filename";