# just a quick simplified version my $package = "Foo"; loader(); sub loader { eval {"package $package"}; require "$package"; # assume $package is in @INC } # now I need to address variables in Foo::, # but I painted myself into a corner where the # only thing I can think of is soft references - # a Bad Thing. print $$package::somehash{somevalue}; # to really have fun I was also trying to run subs # that existed in Foo:: my $action = "testfoo"; &{"$$package::actionshash{$Main::action}"};