Unicode::RecursiveUpgrade

ネストしたリファレンス内の文字列 (utf8, not flagged) を一括で utf8 flagged にしたかった。
Unicode::RecursiveDowngrade を使えば出来るのだけど、upgrade するのに名前が downgrade ってなんか嫌だったのでついカッとなって作った。

package Unicode::RecursiveUpgrade;
use base qw/ Unicode::RecursiveDowngrade /;
use Encode;

sub new {
    my $class = shift;
    my $self  = $class->SUPER::new(@_);
    $self->filter( \&Encode::decode_utf8 );
    $self;
}

sub upgrade {
    shift->downgrade(@_);
}

1;

CPAN には上げません……