--- loncom/xml/run.pm 2000/06/28 19:52:20 1.2 +++ loncom/xml/run.pm 2000/06/29 20:27:44 1.5 @@ -1,12 +1,19 @@ package Apache::run; sub evaluate { - my ($expression,$safeeval) = @_; - return $safeeval->reval($expression); + my ($expression,$safeeval,$decls) = @_; +# print "inside2 evaluate with $expression\n"; +# gerd's old method interpolates unset vars +# $safeeval->reval('return qq('.$expression.');'); + unless (defined $expression) { return ''; } + $safeeval->reval('$_=\''.$expression.'\';'); + $safeeval->reval('{'.$decls.'$_=~s/(\$\{?[A-Za-z]\w*\}?)/(defined(eval($1))?eval($1):$1)/ge;}'); + $safeeval->reval('return $_;'); } sub run { my ($code,$safeeval) = @_; +# print "inside run\n"; $safeeval->reval($code); }