Как захватить STDOUT и STDERR в две разные переменные с помощью Backticks в Perl

Допустим, я хочу запустить внешнюю программу из моего скрипта с обратными знаками и в то же время я хочу захватить и STDOUT и STDERR, но в двух разных переменных. Как я могу это сделать? Например, если я запущу этот скрипт...

my $cmd = `snmpwalk -v $version -c $community $hostname $oid`;

... если нет ошибки, все работает просто отлично, но если команда выдает ошибку, эта ошибка будет напечатана в командной строке, а я не хочу, чтобы это произошло. Я хочу захватить и ошибку. Ничего не должно быть выведено на экран. Есть идеи?

9
задан raz3r 5 December 2011 в 11:29
поделиться