(Fri)Tweetperlで書いたメールフォームで、件名をめっちゃ長くしてみたら文字化けした。"=?ISO-2022-JP?B?$subject?=";なんじゃろうと思って調べてみると、原因はMIME::Base64のエンコード処理だった。基本的なことだと思うのだけど、今まで支障がなくて気付かなかった。encode_base64関数は、以下のような動きをするのが仕様。返されるエンコードされた文字列は76文字を越えないように分割され、空文字列でなければ$eolが最後に付きます。エンコードされた文字列を複数の行に分割したくない場合は、2番目の引数として空白の文字列を渡してください。要は、長い件名にしちゃうと勝手に改行コード入れちゃうから文字化けするって話。改行されたくなかったら、第2引数に空文字を指定しましょう、と。引数2つ取れることなんて、知らなんだ。