Obtener STDOUT, STDERR y el código de respuesta del comando externo * nix en perl

Quiero ejecutar un comando externo desde mi script Perl, colocando el resultado de stdout y stderr en un$variable de mi elección, y para obtener el código de salida del comando en el$? variable

Repasé soluciones en perlfaq8 y sus foros, pero no funcionan para mí. Lo extraño es que yo no obtenga la salida de sdterr en cualquier caso, siempre que el código de salida sea correcto.

Estoy usando Perl versión 5.8.8, en Red Hat Linux 5.

Aquí hay un ejemplo de lo que estoy intentando:

my $cmd="less";
my $out=`$cmd 2>&1`;

my $out=qx($cmd 2>&1);

open(PIPE, "$cmd 2>&1|");

Cuando el comando se ejecuta correctamente, puedo capturar stdout.

No quiero usar módulos de captura adicionales. ¿Cómo puedo capturar los resultados completos del comando externo?

Respuestas a la pregunta(8)

Su respuesta a la pregunta