From b422615f2fd2f086dca5d13f32608d3654429d22 Mon Sep 17 00:00:00 2001 From: vitalif Date: Wed, 23 Mar 2011 01:51:00 +0000 Subject: [PATCH] pass code by reference --- VMX/Template.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/VMX/Template.pm b/VMX/Template.pm index b0032b2..52bdc6f 100644 --- a/VMX/Template.pm +++ b/VMX/Template.pm @@ -64,7 +64,8 @@ sub error { $e = $e." at ".$self->{input_filename}.":".$self->{input_line}; } - $e = __PACKAGE__ . "::error: $e\n"; + my $c = [caller 1]; + $e = $c->[3].": $e\n"; push @{$self->{errors}}, $e; die $e if $self->{raise_error}; return $self->{print_error} ? join('', @{$self->{errors}}) : undef; @@ -149,7 +150,7 @@ sub parse sub parse_inline { my ($self, $code, $vars) = @_; - return $self->parse_real(undef, $code, '_main', $vars); + return $self->parse_real(undef, $_[1], '_main', $vars); } # "Реальная" функция, обрабатывающая все вызовы типа parse @@ -168,7 +169,7 @@ sub parse_real } else { - $textref = \( $textref ); + $textref = \( $_[1] ); } my $str = $self->compile($textref, $fn); $function ||= '_main';