# When it's time to call... call call_command sub call_command { my $command = shift; my ($pid, $rd, $wt); { local $SIG{INT} = 'IGNORE'; $pid = open2($rd, $wt, $command); # From IPC::Open2 } my $outcome = join "", <$rd>; waitpid $pid, 0; return $outcome; }