#!perl -T use Test::More tests => 11; use Text::TemplateLite; use Text::TemplateLite::Standard; my $tpl = Text::TemplateLite->new; my $rnd = $tpl->new_renderer; Text::TemplateLite::Standard::register($tpl, qw/:misc/); is_deeply([ $tpl->get_tokens(q{$=('a',1)}) ], [ '$=', '(', "'a'", ',', '1', ')' ], 'assignment parsing'); ok($tpl->{defs}{'$='}, '$= function is registered'); $tpl->set(q{<<$=('a')>>}); is($rnd->render({ a => 100 })->result, '100', '$= for rendered variable'); $tpl->set(q{<<'$a0='$a$=('a',1)';$a1='$a$=('a',2)';$a2='$=('a')>>}); is($rnd->render->result, '$a0=;$a1=1;$a2=2', 'set/get using $='); is_deeply($rnd->vars, { a => 2}, 'renderer vars after render'); $tpl->set(q{<<$=('c',12,'d',13)>>}); is($rnd->render->result, '', '$= w/ even # args has no value'); is_deeply($rnd->vars, { c => 12, d => 13 }, '$= multi-set'); $tpl->set(q{<<$=('e',14,'f',15,'f')>>}); is($rnd->render->result, '15', '$= w/ odd # args returns value'); is_deeply($rnd->vars, { e => 14, f => 15 }, '$= multi-set w/ return'); $tpl->set(q{<<'before'void($=('during','void')'expr')'after'>>}); is($rnd->render->result, 'beforeafter', 'void value not returned'); is_deeply($rnd->vars, { during => 'void' }, 'void value evaluated'); # END