2014年04月03日

むかしごろーがText::Xslateで未設定の変数を検出する - Islands in the byte streamで、未定義のテンプレート変数を使おうとしたら警告だすソリューション作ってたけど、それだと [% IF unknown_var %] とかした時に true 扱いになってしまってひどい目に合うので、いい感じにするソリューション書いてみた。

hash_with_default の callback では undef を返しつつ、存在しない事を目立つ感じでレンダリングするかんじ。

で、これは毎回 controller が hash_with_default するのめんどいので Proj::Web::render を生やして Amon2 で透過的に使えるようにしようとおもった。
そして、 tie hash とかアクセスしまくるとパフォーマンスに悪影響あるから本番で動かさないの鉄則ね。

HASH の中の HASH の key も調べたいなら hash_with_default_walker みたいな関数でやればよさそう。

あと Text::Xslate 3.1.2 は if (exists $self->[0]{$key}) すべきところを if (defined $value) してるので、バージョン上がるのまったほうがいい(pull request 投げたので、次のバージョンで治ってる)

Posted by Yappo at 2014年04月03日 16:31 | TrackBack | Perl
Comments
Post a comment









Remember personal info?






コメントを投稿する前に↓の場所にnospamと入力してください。