use warnings; use strict; use IPC::Run3 'run3'; my $in = "Foo\nBar\n"; my $out = ""; # This uses temp files: #run3 ['/bin/cat'], \$in, \$out or die "run3"; open my $infh, '<', \$in or die $!; open my $outfh, '>', \$out or die $!; run3 ['/bin/cat'], $infh, $outfh or die "run3"; $?==0 or die "$?";