↓こういうかんじ?
utf8::upgrade = latin1 → utf8 utf8::downgrade = utf8 → latin1 utf8::encode = Encode::encode_utf8 utf8::decode = Encode::decode_utf8(このへんはじっそうがちょっちちがう??)
ただ基本的にユーザサイドでこういうメソッドを明示的に呼ぶのはたいていのばやいまちがっている。utf8 であると断定してしまうのはよくないのこと。
ユーザがこれらのメソッドを明示的によぶのはたいていまちがい。Encode.pm をつかうのがよい。
utf8::decode は対象文字列にコードポイント 256 以上の文字がふくまれていない場合にはフラグをたてない。
http://subtech.g.hatena.ne.jp/miyagawa/20060820/1156076116
感触的には、Encode::decode_utf8 の方が期待にちかい。