Template Toolkit の配列へのアクセス方法メモ
Perl でデザインとビジネスロジック分割して開発効率と保守性を改善する MVC な Web アプリケーションを作るには欠かせないテンプレートエンジン。Perl な世界では、HTML::Template と Template-Toolkit が有名です。
前者は Pure Perl でかかれているので、レンタルサーバとかでもライブラリパスを通すだけで使えるので手軽で便利です。後者は XS で書かれていて遙かに高機能でしかも高速です(実際の動作速度はほぼ同じですが、遙かに高機能な Template Toolkit の内部動作が如何に高速かがわかるでしょう・・・)。
最近 Template Toolkit を使ってアプリを書くことが多いのですが、日本語なドキュメントが極端にすくないです。より深きを知るためにオリジナルのドキュメントを読んでいて初めて知ったことが沢山ありました。
いままで、配列は FOREACH 文で順次アクセスしかできないと思いこんでまして、いちいち特定の添え字の値だけが欲しい場合は、Perl の View 呼び出しの部分で個別に値をテンプレートに設定してあげないとダメなんだぁ〜と思ってましたら、ちゃんと添え字を指定してアクセスできました。
備忘録含めてメモっているわけですが、インストールする際に用いるテストスクリプトの「 list.t 」が参考になりました。今日、発見した事実は下記の通り。
- 配列の添え字は、変数名.添え字とする。例えば、$DATA->[0] にアクセスしたければ、 DATA.0 と記述します。また添え字に変数を使うこともできて、$i=3; $DATA->[$i] に相当する命令は、i=3; DATA.${i} でアクセスできます。
- ハッシュの配列の特定の添え字にアクセスするには、変数名.添え字.キーとする。例えば、$DATA->[0]->{NAME} にアクセスしたければ、DATA.0.NAME と記述します。
- 配列変数のメソッドとして用意されているモノは、first , last , join , reverse.join , sort 。join と sort が用意されているのを知りませんでした。
すでに知っている方にとっては、あたり前じゃ〜んって思われてしまいますが、改めて Template Toolkit って便利と痛感しました。
コメントやシェアをお願いします!