Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

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
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others romping around the Monastery: (11)
As of 2016-10-25 09:44 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.