allow custom newlines for IO::Handle