Xslate 1.1000 released!

リリースしました。中間コードのバージョンが上がっているため、このバージョンを実行すると今まで使用していたテンプレートのキャッシュが破棄されます。

主な変更点は以下の2つです。

  • ループ制御文(lastとnext)が追加された
  • for-else構文がサポートされた

ループ制御文はPerlのものと同じですが、ラベルはサポートしていません。
例:

#!perl -w
use strict;
use Text::Xslate;

my $tx = Text::Xslate->new();
print $tx->render_string(<<'TX');
: for ['foo', 'bar', 'baz'] -> $item {
  : next if $item == 'bar';
  * <: $item :>
: }
TX
__END__

実行結果:

  * foo
  * baz

for-else構文は、forループの対象となる配列が空だったときにかぎり実行されるelseブロックを受け取るものです。
例:

#!perl -w
use strict;
use Text::Xslate;

my $tx = Text::Xslate->new();
print $tx->render_string(<<'TX');
: for [] -> $item {
  * <: $item :>
: }
: else {
  (empty)
: }
TX
__END__

実行結果:

  (empty)

この他、pure Perlエンジンの変更などの修正やバグフィクスがいくつか入っています。
いずれも非互換な修正ではありませんが、問題があればご報告ください。
Enjoy Xslate!