utf8のMeCabとPerlのutf8フラグ

MeCabをutf8用にコンパイルして、Perlから使いました。
そして恐ろしいことが!

恐ろしいことその1 MeCcabから戻る文字列にutf8フラグがつかない

MeCabの出力は文字コードでいうとutf8なのですが、Perl的にはutf8フラグがついていないとただのバイト列とみなすので、うまく扱えません。
はじめは辞書ファイルから読み込むときにフラグをつけていないのが原因なのでuse open ':utf8'するだけだと思ったのですが、そもそもファイルを読んでいるのはlibmecabで、PerlIOレイヤーを通っていないことが発覚。
SWIGやXSでのutf8フラグの扱いはどうなのだろうと一瞬考えてたものの、深みにはまりそうな気がしたので、とりあえずEncode::decode('utf8', $foo)するようにしました。
結構面倒くさいです。

以上

もっといい方法はあるでしょうか。