summaryrefslogtreecommitdiff
path: root/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
diff options
context:
space:
mode:
Diffstat (limited to 'Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm')
-rw-r--r--Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm6
1 files changed, 4 insertions, 2 deletions
diff --git a/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm b/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
index b0c133950b2..eb769f3070a 100644
--- a/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
+++ b/Master/tlpkg/tlperl/lib/Module/CoreList/TieHashDelta.pm
@@ -3,7 +3,7 @@ package Module::CoreList::TieHashDelta;
use strict;
use vars qw($VERSION);
-$VERSION = "3.03";
+$VERSION = '5.20150214';
sub TIEHASH {
my ($class, $changed, $removed, $parent) = @_;
@@ -32,12 +32,14 @@ sub FETCH {
sub EXISTS {
my ($self, $key) = @_;
+ restart:
if (exists $self->{changed}{$key}) {
return 1;
} elsif (exists $self->{removed}{$key}) {
return '';
} elsif (defined $self->{parent}) {
- return exists $self->{parent}{$key};
+ $self = tied %{$self->{parent}}; #avoid extreme magic/tie recursion
+ goto restart;
}
return '';
}