Канонически, если вы пытаетесь получить текстовый вывод разветвленного процесса, я понимаю, что для этого нужны обратные ссылки. Если вам также нужен статус выхода, вы можете проверить его с помощью специальной переменной $?
, например ::
open my $fh, '>', "output.txt" or die $!;
print {$fh} `echo "Hello!"`;
print "Return code: $?\n";
Вывод в STDERR команды из обратных кавычек не будет записан, но вместо этого будет записан непосредственно в STDERR в программе Perl, из которой он вызывается.