Pipes are troublesome beasts because there are a few different, incompatible ways to create them. Not all platforms support all ways, and some platforms may have hidden difficulties like incomplete or buggy support. IO::Pipely provides a couple functions to portably create one- and two-way pipes and pipe-like socket pairs. It acknowledges and works around known platform issues so you don't have to.