From 73b6d62558003113da61a5e5926ea67aa47c6ae5 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 4 Jan 2012 16:40:10 -0600 Subject: don't hang if all packages are hidden --- lib/circular/require.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'lib') 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 = '' + unless defined $caller; warn "Circular require detected: $string_file (from $caller)\n"; } -- cgit v1.2.3-54-g00ecf