| IO-Mux documentation | view source | Contained in the IO-Mux distribution. |
IO::Mux::Pipe::Read - read from an external command
IO::Mux::Pipe::Read is a IO::Mux::Handler::Read is a IO::Mux::Handler
my $mux = IO::Mux::Select->new; # or ::Poll
use IO::Mux::Open '-|';
my $pipe = $mux->open('-|', $command, @cmd_options);
use IO::Mux::Pipe::Read;
my $pipe = IO::Mux::Pipe::Read->new
( command => [$command, @cmd_options] );
$mux->add($pipe);
$pipe->getline(sub {print "$_[0]\n"});
In an event driven program, reading is harder to use than writing: the read will very probably be stalled until data has arrived, so you will need a callback to handle the resulting data.
Creates a pipe, but does not start a process (yet). Used by IO::Mux::IPC, which needs three pipes for one process. Returned is not only a new pipe object, but also a write handle to be connected to the other side.
All OPTIONS which are available to IO::Mux::Handler::Read::new() can be used here as well.
-Option --Default read_size 4096
example:
my ($out, $out_rh)
= IO::Mux::Pipe::Read->bare(name => 'stdout');
-Option --Defined in --Default command <required> fh IO::Mux::Handler <required> name IO::Mux::Handler '$cmd|' read_size IO::Mux::Handler::Read 4096
The external command to be executed. Either the COMMAND needs to parameters, or you need to pass an ARRAY of the command name and all its parameters.
Open the pipe to read. MODE is always -|. When you need to
pass additional OPTIONS to the implied new(), then you must use
an ARRAY for command name and its optional parameters.
example:
my $mux = IO::Mux::Poll->new;
$mux->open('-|', 'who', '-H'); # no opts
$mux->open('-|', ['who', '-H'], %opts);
$mux->open('-|', 'who'); # no opts
$mux->open('-|', ['who'], %opts);
The process id of the child on the other side of the pipe.
The bits of the open mode.
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. |