#!perl -w use strict; use Test::More; use Text::Xslate; use FindBin qw($Bin); sub mk_indent { my($prefix) = @_; return sub { my($str) = @_; $str =~ s/^/$prefix/xmsg; return $str; } } my $tx = Text::Xslate->new( function => { indent => \&mk_indent, }, ); my @set = ( [ q{<: $value | indent("> ") :>}, { value => 'Xslate' } => '> Xslate' ], [ q{<: $value | indent("> ") :>}, { value => "Xslate\nPerl\n" } => "> Xslate\n> Perl\n" ], [ q{: $value | indent("| ") }, { value => "Xslate\nPerl\n" } => "| Xslate\n| Perl\n" ], [ q{: indent("* ")($value) }, { value => "Xslate\nPerl\n" } => "* Xslate\n* Perl\n" ], ); foreach my $d(@set) { my($in, $vars, $out, $msg) = @$d; is $tx->render_string($in, $vars), $out, $msg or diag $in;; } done_testing;