Beefy Boxes and Bandwidth Generously Provided by pair Networks
XP is just a number

The proper use of Safe

by BMaximus (Chaplain)
on Mar 31, 2001 at 03:34 UTC ( #68562=perlquestion: print w/replies, xml ) Need Help??
BMaximus has asked for the wisdom of the Perl Monks concerning the following question:

Could someone give an example on the proper use of the Safe module. In the Panther book eval allows the use of a variable like so.
my $c; my $ev = '$c = 4 + 5'; eval($ev); print $c;
The printout should be 9. Now when I use Safe on a module it doesn't turn out quite the same way.
my $c; my $cpt = new Safe; $cpt->share('$c'); my $ev = '$c = 4 + 5'; $cpt->reval($ev); print $c;
When $c is printed out its nothing. Whats going on in Safe? Whats an example of its proper use?

My thanks for your enlightenment,

Replies are listed 'Best First'.
Re: The proper use of Safe
by MeowChow (Vicar) on Mar 31, 2001 at 03:46 UTC
    Change your lexical $c to a package global (eg. change 'my' to a 'use vars'), and it will work. The share method, as the documentation states, works on variables in the calling package.
                   s aamecha.s a..a\u$&owag.print

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://68562]
Approved by root
[Corion]: marto: Ow! You got hit by the storm that is bringing warm weather to me ...
[1nickt]: marto Good to hear that was the worst of it for you...
[marto]: 1nickt the worst I'm aware of at the moment :P
LanX .♩..♬ ... Another one bites the Sahara dust ...
marto wonders what fresh hell the firefox update has brought, apart from maxing out CPUs
1nickt was looking into Firefox Extended Support releases yesterday. You don't have to go with the updates!
[erix]: wonderfully red sun here
[LanX]: FF has become a source of instability :(

How do I use this? | Other CB clients
Other Users?
Others cooling their heels in the Monastery: (8)
As of 2017-10-17 12:27 GMT
Find Nodes?
    Voting Booth?
    My fridge is mostly full of:

    Results (230 votes). Check out past polls.