Beefy Boxes and Bandwidth Generously Provided by pair Networks
"be consistent"
 
PerlMonks  

Re: Namespace after forking()+eval()ing providing unexpected results

by chipmunk (Parson)
on Jan 23, 2002 at 10:13 UTC ( #140843=note: print w/ replies, xml ) Need Help??


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.


Comment on Re: Namespace after forking()+eval()ing providing unexpected results
Select or Download Code
Re: Re: Namespace after forking()+eval()ing providing unexpected results
by JPaul (Hermit) on Jan 23, 2002 at 20:32 UTC
    That makes lots of sense. I couldn't understand why if the fork/eval was out in LaunchMod.pm it wouldn't work, yet it would in Launcher itself - I saw only that it was doing the same code in two different places, the 'package' declaration didn't hit me...
    The 'package main;' makes the code work as I want it to, so I'm quite happy.

    The code example given is, as you can imagine, greatly simplified from the original software - where I'm using a number of globals to relate back and forth between Code and CodeMod.pm, as there are a lot of routines that use these globals - and I began to feel that passing three vars to one sub, which then distributes that to a bunch more, collects the results... and passes it all back? It just started getting really ugly...

    My thanks Chipmunk,
    JP
    -- Alexander Widdlemouse undid his bellybutton and his bum dropped off --

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://140843]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (3)
As of 2015-07-06 00:08 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (68 votes), past polls