From 271509d85b3b1baa8480551b4cdcfe40fdbab5c4 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Fri, 6 Jan 2012 11:11:12 -0600 Subject: deleting CORE::GLOBAL::require on disabling isn't what we want the binding happens at compile time, so deleting it after the 'require' call is already bound to CORE::GLOBAL::require (rather than to the keyword) causes it to fail --- lib/circular/require.pm | 2 +- t/dynamic2/Bar.pm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/circular/require.pm b/lib/circular/require.pm index 881aec7..dcb138a 100644 --- a/lib/circular/require.pm +++ b/lib/circular/require.pm @@ -132,7 +132,7 @@ sub import { $stash->add_package_symbol('&require' => $saved_require_hook); } else { - $stash->remove_package_symbol('&require'); + $stash->add_package_symbol('&require' => sub { CORE::require(@_) }); } # not delete, because we want to see it being explicitly disabled $^H{'circular::require'} = 0; diff --git a/t/dynamic2/Bar.pm b/t/dynamic2/Bar.pm index ebb6a1c..27b143b 100644 --- a/t/dynamic2/Bar.pm +++ b/t/dynamic2/Bar.pm @@ -1,5 +1,5 @@ package Bar; -use Baz; +require Baz; use circular::require; -use Quux; +require Quux; 1; -- cgit v1.2.3