<% TPL name=userName %>
変数(like )と関数(like<% TPL func=time param=now %>
または)の2種類のマクロを使用して単純なテンプレートシステムを作成する必要があります<% TPL func=rand %>
。
すべてOKですが、テンプレートのコンパイルを追加する必要があります。<% TPL name=userName %>
変数マクロをPerl変数( to$userName
または$vars->{userName}
)および関数to"Some text $rand->() blah blah"
またはに置き換えたい"Some text $func->{time}->('now') and blah blah blah"
。
私は変数のためにそれを作りました:
my $tpl = eval 'sub { my $vars = shift; "Hello, $vars-{userName}!" }';
return $tpl->({ userName => 'John' });
しかし、関数に対してそれを行う方法がわかりません。このコードは機能しません:
my $tpl = eval 'sub { my $func = shift; "Today is $func->{time}->('day')" }';
return $tpl->({ time => \&_time });
関数を機能させるにはどうすればよいですか?
PS別のテンプレートシステム(TT、HTML :: Templateなど)は必要ありません