use IO::Pipely for more portable pipes
depend on Child::IPC::Pipely from CPAN