http://qs321.pair.com?node_id=140843


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.