Encode 2.18 で $encoding->decode(undef) でセグフォった
use Encode; foreach my $enc (qw( cp932 euc-jp UTF-8 utf8 )) { warn $enc; find_encoding($enc)->decode(undef) }
とかやると UTF-8, utf8 でセグフォりました。encode() でも。utf8 系以外は大丈夫ぽい。
こんなデータを渡す方がもちろん悪いんですが。
ちなみに find_encoding() 使わない
encode('utf8', undef);
とかは大丈夫。なので普通は露呈しないと思います。
ソースを追ってたんですが XS(decode_xs, encode_xs) のほうまでおっかけないといけなさそうなので保留。そのへんをちらりと読んだら RT になげる予定。