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