明示的に文字コード指定したときは、out_utf8_flagが立っていようとエンコードする様に変更しました。 # utf8フラグなしで出力 #$tee->out_utf8_flag = 0; # ちゃんとsjisで出力 print $tee->output('sjis'); ソースは続きに置いときます package Language::Tettettee; use strict; use warnings; use utf8; use Encode; use Carp; our $VERSION = 0.02; my $utf8 = find_encoding 'utf8'; sub new($;$$) { my $class = shift; my $enc = shift || $utf8; $enc = find_encoding $enc unless ref $enc; ble