diff options
Diffstat (limited to 'lib/circular/require.pm')
-rw-r--r-- | lib/circular/require.pm | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/circular/require.pm b/lib/circular/require.pm index b7f71c2..234be83 100644 --- a/lib/circular/require.pm +++ b/lib/circular/require.pm @@ -62,8 +62,12 @@ sub _require { my $depth = 0; my $caller; - $caller = caller( $depth++ ) - while !$caller || grep { m/^$caller$/ } @hide; + do { + $caller = caller($depth++) + } while defined($caller) && grep { m/^$caller$/ } @hide; + + $caller = '<unknown package>' + unless defined $caller; warn "Circular require detected: $string_file (from $caller)\n"; } |