Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic

Re: Executing code in a string

by fruiture (Curate)
on Jul 09, 2002 at 19:03 UTC ( #180577=note: print w/replies, xml ) Need Help??

in reply to [untitled node, ID 180576]

$ perldoc -f eval
but, be carefull!


Replies are listed 'Best First'.
by Samn (Monk) on Jul 09, 2002 at 19:12 UTC
        Specifically, consider using the Safe module to restrict the kinds of things that the external code is allowed to do. For example, the following:
        use Safe; my $compartment = new Safe; $compartment->permit_only(':base_core'); my $result = $compartment->reval($foo);
        will forbid a great number of operations but leaves enough allowed so that $foo could be a configuration file - written in Perl syntax. In that case, the rdo() method is also interesting: my $result = $compartment->rdo($filename); which is a safe replacement for my $result = do $filename; For information about the tags and names you can use in the permit() call, see the documentation to the Opcode module.

        Makeshifts last the longest.

    Log In?

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

    How do I use this? | Other CB clients
    Other Users?
    Others avoiding work at the Monastery: (2)
    As of 2023-03-25 21:08 GMT
    Find Nodes?
      Voting Booth?
      Which type of climate do you prefer to live in?

      Results (63 votes). Check out past polls.