#!perl -w use strict; use Test::More; use t::lib::TTSimple; my @data = ( [<<'T', <<'X'], [% MACRO foo BLOCK -%] Hello, [% lang %] world! [% END -%] [% foo() -%] T Hello, Xslate world! X [<<'T', <<'X'], [% MACRO foo(lang) BLOCK -%] foo [% lang %] bar [% END -%] [%- foo(42) -%] Hello, [% lang %] world! T foo 42 bar Hello, Xslate world! X [<<'T', <<'X'], [% MACRO add(a, b) BLOCK -%] [% a + b %] [% END -%] [%- add(10, 32) -%] T 42 X ); foreach my $pair(@data) { my($in, $out, $msg) = @$pair; my %vars = (lang => 'Xslate', foo => "", '$lang' => 'XXX'); is render_str($in, \%vars), $out, $msg or diag $in; } done_testing;