ダサい解決法
package MyProvider;
use base qw/Template::Provider/;
sub _load {
my ($data, $error) = shift->SUPER::_load(@_);
if ($data && $data->{text}) {
$data->{text} =~ s/(\[%[ ]+INCLUDE[ ]+["'])(.+)(["'].*?%\])/$1common:$2$3/;
}
($data, $error);
}
とかいう適当なProviderをつくってcommon側はこれを指定したら動いた。け、ど、だせえええええ。
パッケージ化するかなぁ。
ダサいのでもっとうまい方法でやりたいんだけど。
アマゾンでジャンヌ・ダルクがずっと買えないのは人気だから?
発売数日前に見たときすでになかった罠。
MultiProviderの話
これ、 [% INCLUDE 'common:foo.tt' %]
とかしたとき、さらに foo.tt の中で [% INCLUDE 'bar.tt' %]
とすると common:bar.tt
がインクルードされてほしいのだけどそうはならないのがびみょい。
これ用の Template::Context 作ればいいきがするけど、Templateのソース読むのだるぃ。。