こことかこことか拾い読み。やべー、うちのフィルタも絶対リークしてますよ。
なんとかしなきゃいけないので、完全にエントリの内容パクって準備。以下、自分メモです。
追記。カッとなってパッチ作っちゃいました。ストレスが溜まってたのかもしれません。
--- lib/Template/Plugin/Filter.pm.org 2007-04-28 02:56:05.000000000 +0900 +++ lib/Template/Plugin/Filter.pm 2007-12-08 11:20:41.000000000 +0900 @@ -27,6 +27,8 @@ use warnings; use base 'Template::Plugin'; +use Scalar::Util qw/weaken/; + our $VERSION = 1.36; our $DYNAMIC = 0 unless defined $DYNAMIC; @@ -63,6 +65,7 @@ sub factory { my $self = shift; + weaken(my $weaken_self = $self); if ($self->{ _DYNAMIC }) { return $self->{ _DYNAMIC_FILTER } ||= [ sub { @@ -70,13 +73,13 @@ my $config = ref $args[-1] eq 'HASH' ? pop(@args) : { }; return sub { - $self->filter(shift, \@args, $config); + $weaken_self->filter(shift, \@args, $config); }; }, 1 ]; } else { return $self->{ _STATIC_FILTER } ||= sub { - $self->filter(shift); + $weaken_self->filter(shift); }; } }