読者です 読者をやめる 読者になる 読者になる

NeverBlog::Likk::Unexistable;

見なかったことにして下さい

H::T::C DEFAULTまたはESCAPE

exclusive or というやつです(何

HTML::Template::Compired で DEFAULTとESCAPEの同時指定でエラーが出てしまうので、原因を探りつつも、とりあえず代案。

片方だけなら指定しても問題ないので、もう片方を$objTmpl->param で設定する時にごにょごにょする。

tmpl側でESCAPE_HTMLだ設定し、Defaultは$objTmpl->paramでごにょごにょ

tmpl側

<TMPL_VAR NAME=STRING ESCAPE=HTML>

pl側

$objTmpl->param( STRING => $temp_str || 0 );
を使って、$temp_str が未定義の時にデフォルト値を代入する。

しかし、STRING => 自体を入れないときは当然エラーとなる。
を使っていると深い階層のtmplファイル全のTMPL_VAR を把握しないといけない。
タイトルタグとか、メタタグとかも全指定しないといけない。

tmpl側でDEFAULTを指定し、ESCAPE_HTMLはpl側でごにょごにょ

tmpl側

<TMPL_VAR NAME=STRING DEFAULT=0>

pl側

$objTmpl->param( STRING => CGI::escapeHTML($temp_str));

CGI::escapeHTMLでサニタイズする。
しかし、CGI::escapeHTMLは結構貧相で、スカラーのみ対応。
配列や、ハッシュを対応してくれない。当然ハッシュ・配列リファレンスは全くもってダメ。
H::T::C で便利な objやhash_ref渡しが出来ない。

$objTmpl->param( STRING => CGI::escapeHTML($hash_ref));
とかやって、

なんてやると 上手く値を取れなくて、デフォルトの 0 が表示される