Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical
 
PerlMonks  

allowing Data::Dumper within safe.pm

by gideondsouza (Pilgrim)
on Feb 12, 2013 at 08:25 UTC ( #1018315=perlquestion: print w/replies, xml ) Need Help??
gideondsouza has asked for the wisdom of the Perl Monks concerning the following question:

So I use Safe.pm, to allow and deny certain operations. When I use Data::Dumper I get:
Unsafe code detected: 'eval "string"' trapped by operation mask at /usr/.../Carp.pm line 160 +. Compilation failed in require at /usr/../Data/Dumper.pm line 22. BEGIN failed--compilation aborted at /usr/../Data/Dumper.pm line 22.
This is what my Safe permit/denies look like:
$compartment->deny(qw(:base_io :ownprocess :subprocess :filesys_read : +sys_db :filesys_open :filesys_write :dangerous)); $compartment->permit(qw(print say pack unpack require caller));

Question: What should I allow to make Data::Dumper work? I tried permit("eval") but it says no operator recognized

Note, this is NOT production code, this is a learning project I'm working on.

Replies are listed 'Best First'.
Re: allowing Data::Dumper within safe.pm
by Anonymous Monk on Feb 12, 2013 at 09:17 UTC

      Ah! I've tried entereval and leaveeval and it still gives me the exact same message! :(

      How should I use share_from, I don't quite understand what it does!

        share() allows you to specify which global variables in your program that you want your compartment to be able to see. However, you can only specify simple names, like '$x', i.e. names from the current namespace.

        share_from() allows you to specify more complex variable names, i.e. variables from a different namespace, e.g. package X::Y::Z.

        However, I've not succeeded in getting either to work. If you do, please post an example.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://1018315]
Approved by kcott
Front-paged by Corion
help
Chatterbox?
[LanX]: hey I was told yesterday that "Alma Ata" means father of the apple (ex capital of Kazakhstan) ... so alma is Turkish
[Discipulus]: good point: alms ~charity I made a varronian etymology, sorry, from Alma ~soul
[erix]: alms, aalmoes, almosen from greek eleēmosúnē
[Discipulus]: Almosen is Elemosina in Eatalian
[erix]: yeah, you mediteraaneans are one big family :)
[Discipulus]: greece had to copyrigth etymologies to fill the debt..
[erix]: good no-nonsense american approach to these soft european practices: "Upon entering the Almshouses in Connecticut, patients were whipped up to 10 times"
Discipulus should have..
[erix]: the almshouse generally seems to have become an anglosaxon relic :P
[Discipulus]: just to be sure was not for a free lunch.. sbaaam!

How do I use this? | Other CB clients
Other Users?
Others about the Monastery: (10)
As of 2017-11-23 20:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    In order to be able to say "I know Perl", you must have:













    Results (338 votes). Check out past polls.

    Notices?