The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
#!perl
# https://gist.github.com/3499604
# reported by ktat
# modified by gfx

use strict;
use warnings;

use Test::More;

use Text::Xslate;

my %vpath;
$vpath{"test.tt"} = <<'_TMPL_';
[%- MACRO hoge1 (aaa) BLOCK -%]
[%- END -%]
[%- SET foo = 42 -%]
[%- MACRO hoge2 (bbb) BLOCK -%]
Calling this macro clobbered "foo".
[%- END -%]
[%- hoge2("a") -%]
[% hoge1("b") %]

[% foo %] should be 42.
_TMPL_

my $t = Text::Xslate->new(
    syntax => 'TTerse',
    cache  => 0,
    path => \%vpath
);

my $text = $t->render("test.tt");
note $text;
like $text, qr/^42 \s+ should \s+ be \s+ 42\.$/xms;

done_testing;