NAME
IPC::RunSession::Simple - Run a simple IPC session in the same vein as
IPC::Run & Expect
VERSION
Version 0.002
SYNOPSIS
use IPC::RunSession::Simple
$session = IPC::RunSession::Simple->open( "fcsh" )
# Read until the prompt (which doesn't end in a newline)
# Timeout after 5 seconds
$result = $session->read_until( qr/\(fcsh\) /, 5 )
if ( $result->closed ) {
# We encountered an (abnormal) EOF...
}
elsif ( $result->expired ) {
# The timeout got triggered...
}
else {
print $result->content
}
# Tell 'fcsh' we want to quit
$session->write( "quit\n" )
DESCRIPTION
A simple IPC session with read/write capability using IPC::Open3 and
IO::Select
USAGE
$session = IPC::RunSession::Simple->open( $cmd )
Create a new session by calling "open3" on $cmd
$result = $session->read( [ $timeout ] )
Read (blocking) until some output is gotten
If $timeout is given, then wait until output is gotten OR the timeout
expires (setting $result->expired appropiately)
$result = $session->read_until( $marker, [ $timeout ] )
Read (blocking) until some output matching $marker is gotten
$marker can either be a regular expression or a code block. If a code
block is given, the content accumulated will be available as the first
argument and as $_
If $timeout is given, then wait until output is gotten OR the timeout
expires (setting $result->expired appropiately). Any content collected
up to the timeout will be included in $result->content
$session->write( $content )
Write $content to the input of the opened process
$reader = $session->reader
Return the reader filehandle (the STDOUT/STDERR of the process)
$writer = $session->writer
Return the writer filehandle (the STDIN of the process)
$result->content
The content read via "read" or "read_until"
$result->expired
True if a read returned as a result of taking longer than the specified
timeout value
$result->closed
True if the process closed during the read
SEE ALSO
IPC::Run
Expect
AUTHOR
Robert Krimen, "<rkrimen at cpan.org>"
BUGS
Please report any bugs or feature requests to "bug-ipc-runsession-simple
at rt.cpan.org", or through the web interface at
<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=IPC-RunSession-Simple>.
I will be notified, and then you'll automatically be notified of
progress on your bug as I make changes.
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc IPC::RunSession::Simple
You can also look for information at:
* RT: CPAN's request tracker
<http://rt.cpan.org/NoAuth/Bugs.html?Dist=IPC-RunSession-Simple>
* AnnoCPAN: Annotated CPAN documentation
<http://annocpan.org/dist/IPC-RunSession-Simple>
* CPAN Ratings
<http://cpanratings.perl.org/d/IPC-RunSession-Simple>
* Search CPAN
<http://search.cpan.org/dist/IPC-RunSession-Simple/>
ACKNOWLEDGEMENTS
COPYRIGHT & LICENSE
Copyright 2009 Robert Krimen.
This program is free software; you can redistribute it and/or modify it
under the terms of either: the GNU General Public License as published
by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.