I have a case where I want to use a module containing a bunch of configuration information for the surrounding system. During testing, I call a special subroutine (_testing_on()) in a BEGIN block to use seperate settings (like connecting to a different database so the live one doesn't get written to).
Here's a one-liner that demonstrates the problem:
$ perl -e 'sub FOO () { 1 } BEGIN{ *FOO = sub () { 2 }; } print FOO;' Constant subroutine main::FOO redefined at -e line 1. 2
Normally, that warning is a very good idea, but in this case it just gets in the way.
How can I keep the inline-ableness of a sub NAME () { 1 } while still being able to redefine it under special circumstances without that warning? If necessary, I can live with not being inline, but it'd be really nice.
----
I wanted to explore how Perl's closures can be manipulated, and ended up creating an object system by accident.
-- Schemer
: () { :|:& };:
Note: All code is untested, unless otherwise stated
In reply to Suppressing "Constant Subroutine Redeifined" Error by hardburn
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |