HTML::Templateのバグ?仕様?

HTML::Templateを使っていて気になったこと。

#!/usr/bin/perl
use strict;
use warnings;
use HTML::Template;
use Readonly;

my $template = q(<TMPL_LOOP NAME=LOOP>
VALUE => <TMPL_VAR NAME=VALUE></TMPL_LOOP>);

Readonly::Array my @list => (0 .. 10);

my @loop = ();
my $line = 0;
foreach (@list) {
    push @loop, {VALUE => $_};
    $line++;
    if ($line == 10) {
        my $tmpl = HTML::Template->new(scalarref => \$template);
        $tmpl->param(LOOP => \@loop);
        print $tmpl->output;
    }
}

上のコードを実際に走らせて見ると分かりますが、エラーが出て止まります。原因になるのは$tmpl->outputのメソッド呼び出し。@listReadonlyモジュールで作った読み取り専用の配列でなくても構いません。上のコードは例示のためのサンプルコードなので、私が実際に書いたコードでは、Tie::Fileでファイルを読み取り専用の配列のように扱うものでした。

foreach (@list) {
    push @loop, {VALUE => $_};
    $line++;
}
my $tmpl = HTML::Template->new(scalarref => \$template);
$tmpl->param(LOOP => \@loop);
print $tmpl->output;

このようにすると正常に動作します。私はどうしても最初の例のように実装する必要があったので、しょうがなく読み取り専用属性を外しました。
これってHTML::Templateのバグなのか仕様なのか、ドキュメントを詳しく読んでいないのではっきりいえませんが、どうもバグ臭いような。誰かもっと詳しい人いませんかねぇ…