#!/usr/bin/env perl use strict; use warnings; use IPC::Run qw(run new_chunker); my @cat = qw( cat ); run \@cat, '', new_chunker("\n"), sub { my $line = shift; print $line; push @out, $line; }, '2>', new_chunker("\n"), sub { my $line = shift; print STDERR $line; push @err, $line; } or die $?; print PIPE "some input\n"; close PIPE; print "out @out"; print "err @err"; __END__ karls-mac-mini:playground karl$ perl -c chunker.pl Possible unintended interpolation of @out in string at chunker.pl line 21. Possible unintended interpolation of @err in string at chunker.pl line 22. Global symbol "@out" requires explicit package name (did you forget to declare "my @out"?) at chunker.pl line 12. Global symbol "@err" requires explicit package name (did you forget to declare "my @err"?) at chunker.pl line 16. Global symbol "@out" requires explicit package name (did you forget to declare "my @out"?) at chunker.pl line 21. Global symbol "@err" requires explicit package name (did you forget to declare "my @err"?) at chunker.pl line 22. chunker.pl had compilation errors.