Mark Overmeer
and 1 contributors


IOMux::Open - simulate the open() function


  use IOMux::Open qw( -| |- |-| < > >> tcp);

  # pipe for reading
  my $who = $mux->open('-|', 'who', 'am', 'i');
  print <$who>;

  # two-way connection (like IPC::Open3)
  my $echo = $mux->open('=|', 'cat');

  # file
  my $pw = $mux->open('<', '/etc/passwd');
  my @noshell = grep /\:$/, <$pw>;


This module is a simple wrapper to bring various alternative connection implementations closer to normal Perl. It also saves you a lot of explicit require (use) lines of code.

With this module, code is simplified. For instance, the real logic is:

  use IOMux::Pipe::Read;
  my $who = IOMux::Pipe::Read->new
   ( run_shell => [ 'who', 'am', 'i' ]
  print <$who>;

In the short syntax provided with this module:

  use IOMux::Open '-|';
  my $who = $mux->open('-|', 'who', 'am', 'i');
  print <$who>;

You only need to use one ::Open module with some parameter, in stead of requiring all long names explicitly. As you can see, the object gets added to the mux as well.



IOMux::Open->new($mode, $params)

Available MODES are

    -|  IOMux::Pipe::Read
   |-   IOMux::Pipe::Write
   |-|  IOMux::IPC
   |=|  IOMux::IPC          (with errors)
    >   IOMux::File::Write
    >>  IOMux::File::Write  (appendinf)
    <   IOMux::File::Read



This module is part of IOMux distribution version 1.00, built on November 11, 2015. Website: All modules in this suite: "Any::Daemon", "IOMux", and "IOMux::HTTP".

Please post questions or ideas to


Copyrights 2011-2015 by [Mark Overmeer]. For other contributors see ChangeLog.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See