1: package Apache::run;
2:
3: sub evaluate {
4: my ($expression,$safeeval) = @_;
5: # print "inside2 evaluate with $expression\n";
6: # gerd's old method interpolates unset vars
7: # $safeeval->reval('return qq('.$expression.');');
8: $safeeval->reval('$_=\''.$expression.'\';');
9: $safeeval->reval('$_=~s/(\$\{?[A-Za-z]\w*\}?)/(defined(eval($1))?eval($1):$1)/ge;');
10: $safeeval->reval('return $_;');
11: }
12:
13: sub run {
14: my ($code,$safeeval) = @_;
15: # print "inside run\n";
16: $safeeval->reval($code);
17: }
18:
19: 1;
20: __END__;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>