From 677465901f2704bbe258ba2000cbcf8e795e130b Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Wed, 4 Jan 2012 15:44:11 -0600 Subject: simplify a bit --- lib/circular/require.pm | 23 ++++++----------------- 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/lib/circular/require.pm b/lib/circular/require.pm index eeae7ac..f398743 100644 --- a/lib/circular/require.pm +++ b/lib/circular/require.pm @@ -45,7 +45,7 @@ module has not finished executing. my %seen; my $saved; -my %settings; +my @hide; sub _require { my ($file) = @_; @@ -58,8 +58,7 @@ sub _require { my $caller; $caller = caller( $depth++ ) - while !$caller - || grep { m/^$caller$/ } @{ $settings{hide} }; + while !$caller || grep { m/^$caller$/ } @hide; warn "Circular require detected: $string_file (from $caller)\n"; } @@ -96,7 +95,10 @@ sub import { sub unimport { my $class = shift; - $class->settings( @_ ); + my %params = @_; + + @hide = ref($params{'hide'}) ? @{ $params{'hide'} } : ($params{'hide'}) + if exists $params{'hide'}; my $stash = Package::Stash->new('CORE::GLOBAL'); my $old_require = $stash->get_package_symbol('&require'); @@ -105,19 +107,6 @@ sub unimport { $stash->add_package_symbol('&require', \&_require); } -sub settings { - my $class = shift; - my %params = @_; - - %settings = ( %settings, %params ); - - $settings{hide} = [ $settings{hide} ] - if $settings{hide} - && !ref $settings{hide}; - - return %settings; -} - =head1 CAVEATS This module works by overriding C, and so other modules -- cgit v1.2.3