in reply to Re^2: Capturing STDOUT and/or STDERR from Proc::Background
in thread Capturing STDOUT and/or STDERR from Proc::Background

I meant Capture::Tiny, along the lines of

... my $session = get_session_id(); my $cache = get_cache_handle(); $cache->set( $session, [ 0, "" ] ); # no data yet my $background = go_background( $session ); ... if( not $background->alive ) { if( my $data = $cache->get( $session ) ){ return show_results( $data ); } } ... sub get_cache_handle { use Cache::FileCache; return Cache::FileCache->new ... }

## stuffintocache.pl #!/usr/bin/perl -- use strict; use warnings; use Getopt::Long(); use Capture::Tiny qw/ capture /; Main( @ARGV ); exit( 0 ); sub Main { my %opt; Getopt::Long::GetOptionsFromArray( \@_, \%opt, 'session=s', ... ) my($stdout, $stderr, $exit) = capture { system( $cmd, @args ); }; my $session = get_session_id(); my $cache = get_cache_handle(); $cache->set( $session, [ 1, $stdout, $stderr, $exit ] ); return; }

Replies are listed 'Best First'.
Re^4: Capturing STDOUT and/or STDERR from Proc::Background
by mmartin (Monk) on Aug 12, 2013 at 14:16 UTC
    Hey Anonymous Monk, thanks for the reply!

    Cool, thanks for the examples, much appreciated...
    I just checked out the CPAN link you posted for that Module and I like that you can also just
    include arbitrary code inside the capture() Function/Method and get STDERR/STDOUT and a
    return code from whatever you put inside the capture function... Pretty cool, thanks!


    Thanks Again for the Reply,
    Matt