CDBIとかDBICのイテレータで [% WHILE (foo = foo.next) %] とか書くと、 undef error - WHILE loop terminated (> 1000 iterations) とか怒られた。 TT見ると $WHILE_MAX = 1000 unless defined $WHILE_MAX; ... sub while { my ($class, $expr, $block) = @_; $block = pad($block, 2) if $PRETTY; return < $WHILE_MAX iterations)\\n" unless \$failsafe; }; EOF } こんな感じで無限ループを抑止してる。 なので、 local $Template::Directive::WHILE_MAX = $it->count+1; こんな感