The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

Proc::Class - OO interface for process management

SYNOPSIS

    use Test::More tests => 4;
    use Proc::Class;

    my $script = Proc::Class->spawn(
        cmd  => '/path/to/script/qmail/foo.pl',
        env  => {DEFAULT => "TOKEN"},
        argv => [qw/--dump/],
    );
    $script->print_stdin($mail->body);
    $script->close_stdin();
    is $script->slurp_stdout(), '';
    is $script->slurp_stderr(), '';

    my $status = $script->waitpid;
    ok $status->is_exited();
    is $status->exit_status(), 0;

DESCRIPTION

Proc::Class is a simple OO wrapper for IPC::Open3, POSIX.pm, and more.

THIS MODULE IS IN ITS BETA QUALITY. THE API MAY CHANGE IN THE FUTURE

METHODS

my $script = Proc::Class->new( cmd => '/path/to/script', env => \%env, argv => \@args );

create a new script object.

$script->print_stdin($txt);

pass $txt to child process' STDIN

$script->close_stdin();

close child process' *STDIN.

my $txt = $script->slurp_stdout();

slurp() from child process' *STDOUT.

my $txt = $script->slurp_stderr();

slurp() from child process' *STDERR.

my $txt = $script->slurp_stderr();

slurp() from child process' *STDERR.

my $status = $script->waitpid();

Waits for a particular child process to terminate and returns the pid of the deceased process. Returns Proc::Class::Status object.

$script->kill('TERM');

Send signal to the process.

AUTHOR

Tokuhiro Matsuno <tokuhirom slkjfd gmail.com>

SEE ALSO

Proc::Open3

LICENSE

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