PerlCGIアプリをあるWebホストから別のWebホストに移動しました。次のエラーが発生するTemplateTookitを除いて、すべて正常に実行されています。
「テンプレートプロセスが失敗しました:undefエラー-これは/usr/lib/perl5/5.8.8/CGI/Carp.pmの314行目では発生しないはずです。」
テンプレートは他のウェブホストで正常に機能しています。テンプレートオブジェクトを作成するときに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";