#!perl -w use strict; use Test::More; use Text::Xslate; use Text::Xslate::Compiler; my $tx = Text::Xslate->new( function => { 'array::inc' => sub { my($a, $i) = @_; $a->[$i]++; return $a; }, } ); my @a = (42); is $tx->render_string(q{<: $a.merge(3).inc(0).join(',') :>}, { a => \@a}), '43,3'; is_deeply \@a, [42]; is $tx->render_string(q{<: $a.merge(3).inc(1).join(',') :>}, { a => \@a}), '42,4'; my %h = (foo => 42); is $tx->render_string(q{<: $h.keys().inc(0).join(',') :>}, { h => \%h}), do{ my $x = 'foo'; $x++; $x }; is_deeply \%h, { foo => 42 }; is $tx->render_string(q{<: $h.values().inc(0).join(',') :>}, { h => \%h}), '43'; is_deeply \%h, { foo => 42 }; done_testing;