diff options
author | Jesse Luehrs <doy@tozt.net> | 2012-01-06 11:11:12 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2012-01-06 11:11:12 -0600 |
commit | 271509d85b3b1baa8480551b4cdcfe40fdbab5c4 (patch) | |
tree | 761ffd69fe02e09264cabb46dde21ee90cfb4381 | |
parent | e17323538f7f49e7371f5e92bd2ab87f6a838e7d (diff) | |
download | circular-require-271509d85b3b1baa8480551b4cdcfe40fdbab5c4.tar.gz circular-require-271509d85b3b1baa8480551b4cdcfe40fdbab5c4.zip |
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
-rw-r--r-- | lib/circular/require.pm | 2 | ||||
-rw-r--r-- | 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; |