in reply to Namespace after forking()+eval()ing providing unexpected results
It's hard to say without seeing some more of the code, but I note that eval executes the string within the current package. Thus, I suspect your problem is that LaunchMod starts with package LaunchMod;, and the code inside the eval is executed inside the LaunchMod package, setting $LaunchMod::me rather than $main::me.
You can fix this by specifying the appropriate package somewhere... The Code file could start with package main;, or you could stick "package main;" onto the front of $code before evalling it.
It may also be worth considering doing away with the use of globals altogether, passing $me into &CodeMod::MySub rather than depending on it being in a specific package.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Re: Namespace after forking()+eval()ing providing unexpected results
by JPaul (Hermit) on Jan 23, 2002 at 20:32 UTC |
In Section
Seekers of Perl Wisdom