{ package Mail::Mailer::smtp::pipe; sub WRITE { my $fh = $_[0]; print $fh substr($_[1],0,$_[2]) } } # taken from Tie::Handle or { package Mail::Mailer::smtp::pipe; sub WRITE { my $fh = $_[0]; $fh->PRINT(substr($_[1],0,$_[2])) } } or maybe { package Mail::Mailer::smtp::pipe; sub WRITE { my $fh = $_[0]; $fh->format_write(substr($_[1],0,$_[2])) } }