#!/usr/bin/env perl use strict; use warnings; use autodie qw{:all}; use Capture::Tiny qw{capture}; my ($stdout, $stderr) = capture \&run_external_command; printf "STDOUT: %sSTDERR: %s\n", $stdout, $stderr; sub run_external_command { my $external_command = 'cat'; open my $cmd_pipe, '|-', $external_command; print $cmd_pipe "password\n"; }