Global? There's no need to use a global here. You only ever reference %CFG *in* the package... so just make it package scoped - it'll act like a static variable and persist. (scope it with 'my' and remove it from the export)
You can always get the value you want with a call to MyConfig::cfg David -----Original Message----- From: Tosh Cooey [mailto:t...@1200group.com] Sent: Thursday, January 14, 2010 10:45 AM To: modperl@perl.apache.org Subject: A ghost in the machine? Hi to everyone! I'm trying to find out if I'm passing objects properly under mod_perl because something is not working as I expect. index.pl ######## use MyConfig; my $vars = { config => &cfg }; MyConfig.pm ########### package MyConfig; use strict; use Exporter; use vars qw(@ISA @EXPORT %CFG ); use ClientConf; @ISA = qw(Exporter); @EXPORT = qw(%CFG &cfg); %CFG = { global vars... }; sub cfg { my $CFG{$clientID} = new ClientConf; return $CFG{$clientID}; } 1; Under normal PERL $vars->{config} is a MyConfig object. Under mod_perl nothing is returned. Debugging with "print" statements in &cfg shows me that "ref $CFG{$clientID}" is ClientConf, the object is there, but upon return it just disappears. I have other functions which "return new MyUser()" and these work perfectly, so I'm thinking that the problem lies with the global variable "$CFG" and that something which I think should be happening is NOT happening. I'm flummoxed... Thank-you for any insights! Tosh -- McIntosh Cooey - Twelve Hundred Group LLC - http://www.1200group.com/