summaryrefslogtreecommitdiff
path: root/Xerl/Page/Templates.pm
diff options
context:
space:
mode:
authorPaul C. Buetow (mars.fritz.box) <paul@buetow.org>2014-04-27 11:45:56 +0200
committerPaul C. Buetow (mars.fritz.box) <paul@buetow.org>2014-04-27 11:45:56 +0200
commit9055ae2a2874b5f802598c90bd0526024ab2e393 (patch)
tree2e3c239c8856dcb2f4e81ea8c5966dc697de0dc8 /Xerl/Page/Templates.pm
parent80ca05ffe84a11585bb6e9414d91c10e4a4f188e (diff)
fix
Diffstat (limited to 'Xerl/Page/Templates.pm')
-rw-r--r--Xerl/Page/Templates.pm12
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/</&lt;/g;
+ $str =~ s/>/&gt;/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;