summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2012-01-06 11:11:12 -0600
committerJesse Luehrs <doy@tozt.net>2012-01-06 11:11:12 -0600
commit271509d85b3b1baa8480551b4cdcfe40fdbab5c4 (patch)
tree761ffd69fe02e09264cabb46dde21ee90cfb4381
parente17323538f7f49e7371f5e92bd2ab87f6a838e7d (diff)
downloadcircular-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.pm2
-rw-r--r--t/dynamic2/Bar.pm4
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;