| IO-Mux documentation | view source | Contained in the IO-Mux distribution. |
IO::Mux::Open - simulate the open() function
use IO::Mux::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 IO::Mux::Pipe::Read; my $who = IO::Mux::Pipe::Read->new ( run_shell => [ 'who', 'am', 'i' ] ); $mux->add($who); print <$who>;
In the short syntax provided with this module:
use IO::Mux::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.
Available MODES are
-| IO::Mux::Pipe::Read
|- IO::Mux::Pipe::Write
|-| IO::Mux::IPC
|=| IO::Mux::IPC (with errors)
> IO::Mux::File::Write
>> IO::Mux::File::Write (appendinf)
< IO::Mux::File::Read
This module is part of IO-Mux distribution version 0.11, built on January 26, 2011. Website: http://perl.overmeer.net/ All modules in this suite: Any::Daemon, IO::Mux, and IO::Mux::HTTP.
Please post questions or ideas to perl@overmeer.net
Copyrights 2011 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 http://www.perl.com/perl/misc/Artistic.html
| IO-Mux documentation | view source | Contained in the IO-Mux distribution. |