我已經將一個Perl CGI應用程序從一個Web主機移動到另一個Web主機。一切運行良好,除了模板Tookit這是給出以下錯誤:如何在Perl的Template Toolkit中追蹤「Template process failed:undef error」?
「模板進程失敗:undef錯誤 - 這不應該發生在/usr/lib/perl5/5.8.8/CGI/Carp.pm行314 「。
該模板在其他Web主機上正常工作。在創建模板對象時,我已經設置了DEBUG_ALL標誌,但是它沒有提供任何關於只是加載調試輸出的錯誤的附加信息。
我無法發佈模板源,因爲它裏面有很多客戶端特定的東西。
我寫了一個簡單的測試模板,並且工作正常。只是想知道如果有人之前看過這個錯誤,或者有任何想法找到解決辦法的最快方法。
編輯:這是加載和處理模板的代碼片段。
my $vars = {};
$vars->{page_url} = $page_url;
$vars->{info} = $info;
$vars->{is_valid} = 0;
$vars->{invalid_input} = 0;
$vars->{is_warnings} = 0;
$vars->{is_invalid_price} = 0;
$vars->{output_from_proc} = $proc_output;
...
my $file = 'clientTemplate.html';
#create ref to hash
use Template::Constants qw(:debug);
my $template = Template->new(
{
DEBUG => DEBUG_SERVICE | DEBUG_CONTEXT | DEBUG_PROVIDER | DEBUG_PLUGINS | DEBUG_FILTERS | DEBUG_PARSER | DEBUG_DIRS,
EVAL_PERL => 1,
INCLUDE_PATH => [
'/home/perlstuff/templates',
],
}
);
$template->process($file, $vars)
|| die "Template process failed: ", $template->error(), "\n";
你可以請張貼哪個調用模板的Perl代碼? – 2010-05-04 15:07:46