Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister
 
PerlMonks  

The proper use of Safe

by BMaximus (Chaplain)
on Mar 31, 2001 at 03:34 UTC ( [id://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,
BMaximus

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.
       MeowChow                                   
                   s aamecha.s a..a\u$&owag.print

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://68562]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others romping around the Monastery: (2)
As of 2024-04-20 03:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found