pipe() now has all the logic it needs
IO::Handle.encoding fixes