Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling

Re^2: eval('__PACKAGE__') is always main?!!!

by gaal (Parson)
on Dec 24, 2004 at 07:01 UTC ( #417269=note: print w/replies, xml ) Need Help??

in reply to Re: eval('__PACKAGE__') is always main?!!!
in thread eval('__PACKAGE__') is always main?!!!

(Following up on a brief CB /msg exchange, that may be interesting to other monks.)

Speaking of documentation only here: I thought "executed within the context of the current Perl program" ought to have trumped eval EXPR's move to main, but as ikegami notes, the statement about context applies only to eval BLOCK.

But eval BLOCK of course does share some (a lot of) state with the main program; there's no new perl interpreter constructed, and the following does change the value of $x in the main program:

perl -le '$x = 42; eval q($x = 6*9); print $x'    # prints "54"

The first thing that needs fixing in this case appears to be the docs.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (6)
As of 2016-10-25 07:09 GMT
Find Nodes?
    Voting Booth?
    How many different varieties (color, size, etc) of socks do you have in your sock drawer?

    Results (315 votes). Check out past polls.