--cut here-- [% MACRO tr_test BLOCK %] join ':', @_; [% END %] [% PERL %] $stash->set( 'tr_test_2', sub { join ':', @_ } ); [% END %] 1: [% tr_test( 'test', '1' ) %] 2: [% tr_test_2( 'test', '2' ) %] --cut here--