http://www.perlmonks.org?node_id=1018297


in reply to Re: Passing argument into STDIN inside safe.pm reval
in thread Passing argument into STDIN inside safe.pm reval

Hey thanks a ton for your replies and effort!

I guess running the code in a virtual environment is the only way out!

I'm trying to sort of understand and mimic www.perltuts.com. The author says this on his blog :

Evaluator is a simple daemon that runs on a virtual machine, it accepts the code, builds the Perl package and evals it capturing the output with Capture::Tiny. It does some timeout checking and fork limiting of course. The virtual machine (qemu Debian image) allows you to run a real Perl code on a real machine. This can be used when writing advanced tutorials including IO, networking, forks etc (I tried Safe but wanted more freedom). It is reset every hour from a snaphot.

So I' playing about on Amazon EC2 and was thinking of running a new instance that will just evaluate code and return the result. I'm thinking I can use Time::Out to timeout operations, but (1) how do I do a fork limit? (2) Am I pretty safe if I allow any perl code to run but restart my VM every hour or something?

  • Comment on Re^2: Passing argument into STDIN inside safe.pm reval