I'm developing CGI's and modules for use under Apache with mod_perl. I would _like_ to have a module access the value of a variable in the callers package, namely $DEBUG.
$main::DEBUG works fine in the module when it is run from test.pl (make test). But when called from the CGI, it's undefined. OK, I looked at (caller)[0] (the callers package), which looks like (in my current project:
Apache::ROOTweb_2emgh_2eharvard_2eedu::dnacore::cgi_2dbin::synthesis::CE_QC</p>
So, since it will change, I thought I'd try to use the package name as a symbolic reference(slightly abridged):
my $pkg = (caller)[0]; no strict; warn("${$pkg::DEBUG} in $pkg"); # see what it gets
Which was still undefined. But if I use the package string literally:
warn("$Apache::ROOTweb_2emgh_2eharvard_2eedu::dnacore::cgi_2dbin::synthesis::CE_QC::DEBUG in $pkg");
I get the value expected. I've thrashed around and skimmed the docs for a while now, trying different ways of bracketing, attempting to typeglob, etc. Now it's way past time I ate and I'm frustrated. Please, if anyone can help solve this, I would, as always, be very appriciative!
TIA,In reply to symbolic reference to variable in callers name space by spq
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |