diff options
Diffstat (limited to 'contrib/modules/m_perl/safe_eval.pl')
-rw-r--r-- | contrib/modules/m_perl/safe_eval.pl | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/contrib/modules/m_perl/safe_eval.pl b/contrib/modules/m_perl/safe_eval.pl new file mode 100644 index 0000000..1e6489f --- /dev/null +++ b/contrib/modules/m_perl/safe_eval.pl @@ -0,0 +1,25 @@ +#!/usr/bin/perl +use strict; +use Safe; + +my $expr = shift; + +my $cpt = new Safe; + +#Basic variable IO and traversal + +$cpt->permit(':base_core'); + +$SIG{ALRM} = sub { + die "Alarm"; +}; + +alarm(4); + +my $ret = $cpt->reval($expr); + +if ($@) { + print $@; +} else { + print $ret; +} |