0

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";
4

1 に答える 1

4

Devel :: SimpleTraceを使用して、エラーが発生したときにコードがどこにあるかを示すスタックトレースを取得してみてください。おそらくそれはあなたに何が起こっているかについてもう少し良い手がかりを与えるでしょう。

于 2010-05-04T17:39:57.900 に答える