summaryrefslogtreecommitdiffstats
path: root/lib/circular/require.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/circular/require.pm')
-rw-r--r--lib/circular/require.pm12
1 files changed, 7 insertions, 5 deletions
diff --git a/lib/circular/require.pm b/lib/circular/require.pm
index db1738f..9b69394 100644
--- a/lib/circular/require.pm
+++ b/lib/circular/require.pm
@@ -62,11 +62,13 @@ sub _require {
if (exists $being_loaded{$string_file}) {
my $caller = $current;
- $caller = $being_loaded{$caller}
- while defined($caller) && grep { m/^$caller$/ } @hide;
-
- $caller = '<unknown package>'
- unless defined $caller;
+ while (grep { m/^$caller$/ } @hide) {
+ $caller = $being_loaded{$caller};
+ if (!defined($caller) || $caller eq $string_file) {
+ $caller = '<unknown file>';
+ last;
+ }
+ }
warn "Circular require detected: $string_file (from $caller)\n";
}