use IO::Pipely::pipely if possible. pipe() otherwise