Xslate 0.1058の新機能

HTMLのソースを返す関数で正しくHTMLソースを出力させるには、戻り値をmark_raw()する必要があります。さもないと、自動エスケープ機構が働いてしまうからです。
このために、0.1057以前のXslateはわざわざラッパー関数を書く必要がありました。しかし、繰り返し同じことをするのは面倒なので、これを簡単にできるようにするためのユーティリティを追加しました。
以前以下のように書いていたところが(Cookbookより引用):

use Text::Xslate qw(mark_raw unmark_raw);
use HTML::FillInForm;
sub fillinform {
    my($q) = @_;
    my $fif = HTML::FillInForm->new();
    return sub {
        my($html) = @_;
        $html = unmark_raw($html); 
        return mark_raw($fif->fill(\$html, $q));
    };
}

以下のように書けるようになります。

use Text::Xslate qw(html_builder);
use HTML::FillInForm;
sub fillinform {
    my($q) = @_;
    my $fif = HTML::FillInForm->new();
    return html_builder {
        my($html) = @_;
        return $fif->fill(\$html, $q);
    };
}

この例だとあまり変わりませんが、このほかfunction => { foo => html_builder(\&foo) }とも書けるため、ラッパーを直接書かなければならないケースは少なくなるかと思います。