in reply to Is CORE::pipe magical?

The properties of a pipe handle derive from those of unix pipes. They are filehandles of a different kind from those of static disk files.

One property that I think is relevant to your problem is that, like sockets and terminals, they are not seekable. The ioctls for that don't exist in the operating system. FileHandle is derived from IO::File, IO::Seekable, and IO::Handle. It is itself a wrapper for them.

To see an object interface for pipes, take a look at IO::Pipe. Perhaps you can work that into your wrapper class somehow. A unified treatment would be neat. I'm not sure how you would want to treat seek with that, but either failing or some kind of seekable buffering would be sensible there.

After Compline,
Zaxo