Как заявил abubacker, вы можете использовать обратные пометки, чтобы записать вывод программы в переменную для последующего использования. Однако, если вам также нужно проверить исключительные возвращаемые значения или обойти вызов оболочки, самое время ввести модуль CPAN, IPC :: System :: Simple :
use IPC::System::Simple qw(capture);
# Capture output into $result and throw exception on failure
my $result = capture("some_command");
Этот модуль можно вызывать различными способами, и он позволяет настроить, какие возвращаемые значения ошибок являются «приемлемыми», обходить ли оболочку или нет, и как обрабатывать группировку аргументов. Он также предоставляет замену для system()
, которая добавляет дополнительную проверку ошибок.