diff options
| author | Paul C. Buetow (mars.fritz.box) <paul@buetow.org> | 2014-04-27 11:45:56 +0200 |
|---|---|---|
| committer | Paul C. Buetow (mars.fritz.box) <paul@buetow.org> | 2014-04-27 11:45:56 +0200 |
| commit | 9055ae2a2874b5f802598c90bd0526024ab2e393 (patch) | |
| tree | 2e3c239c8856dcb2f4e81ea8c5966dc697de0dc8 /Xerl/Page | |
| parent | 80ca05ffe84a11585bb6e9414d91c10e4a4f188e (diff) | |
fix
Diffstat (limited to 'Xerl/Page')
| -rw-r--r-- | Xerl/Page/Templates.pm | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/Xerl/Page/Templates.pm b/Xerl/Page/Templates.pm index d18ebcb..4a1c929 100644 --- a/Xerl/Page/Templates.pm +++ b/Xerl/Page/Templates.pm @@ -168,6 +168,14 @@ sub print($;$) { my $time = $_[1]; my $hflag = 1; + my $eval = sub { + my $perl = shift; + my $str = eval $perl; + $str =~ s/</</g; + $str =~ s/>/>/g; + return $str; + }; + for my $line ( @{ $self->get_array() } ) { if ( $hflag == 1 && $config->exists('noparse') ) { $line =~ s#^Content-Type.*#Content-Type: text/plain#i; @@ -175,14 +183,14 @@ sub print($;$) { } $line =~ s/ +/ /g; - redo if !$flag and $line =~ s/<perl>((?:.|\n)*?)<\/perl>/eval $1/ego; + redo if !$flag and $line =~ s/<perl>((?:.|\n)*?)<\/perl>/$eval->($1)/ego; if ( !$flag and $line =~ s/<perl>(.*)$//o ) { $code .= $1; $flag = 1; } - elsif ( $line =~ s/^(.*?)<\/perl>/eval $code.$1/eo ) { + elsif ( $line =~ s/^(.*?)<\/perl>/$eval->($code.$1)/eo ) { ( $code, $flag ) = ( '', 0 ); redo; |
