diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-01-04 16:40:10 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-01-04 16:40:10 -0600 |
commit | 73b6d62558003113da61a5e5926ea67aa47c6ae5 (patch) | |
tree | a0313a65c21ee67e6e90ea7fc30e2ab63b01bf1d /lib | |
parent | 8322efee06fbf44b8a8fa3717f933bae3632073d (diff) | |
download | circular-require-73b6d62558003113da61a5e5926ea67aa47c6ae5.tar.gz circular-require-73b6d62558003113da61a5e5926ea67aa47c6ae5.zip |
don't hang if all packages are hidden
Diffstat (limited to 'lib')
-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"; } |