¿Cómo llamar a un script de Python desde Perl?

Necesito llamar “/usr/bin/pdf2txt.py” con algunos argumentos de mi script de Perl. Cómo debería hacer esto ?

Si necesita capturar STDOUT :

my $ret = `/usr/bin/pdf2txt.py arg1 arg2`; 

Puede capturar fácilmente STDERR redirigiéndolo a STDOUT:

 my $ret = `/usr/bin/pdf2txt.py arg1 arg2 2>&1`; 

Si necesita capturar el estado de salida , puede utilizar:

 my $ret = system("/usr/bin/pdf2txt.py arg1 arg2"); 

Tenga en cuenta que tanto `` como system() bloquean hasta que el progtwig termina de ejecutarse.

Si no desea esperar, o si necesita capturar tanto el estado STDOUT / STDERR como el estado de salida, debe usar IPC :: Open3 .

 my $output = `/usr/bin/pdf2txt.py arg1 arg2`; 

Si no necesita la salida del script, pero desea el código de retorno, use system() :

 ... my $bin = "/usr/bin/pdf2txt.py"; my @args = qw(arg1 arg2 arg3); my $cmd = "$bin ".join(" ", @args); system ($cmd) == 0 or die "command was unable to run to completion:\n$cmd\n"; 

La buena respuesta de Francisco:

 my $ret = `/usr/bin/pdf2txt.py arg1 arg2 2>&1`; 

es simplificado por Blagovest Buyukliev:

 my $ret = `/usr/bin/pdf2txt.py arg1 arg2`; 

La alternativa es,

 my $ret = system(/usr/bin/pdf2txt.py arg1 arg2`); 

No creo que funcione porque la salida se imprime en la pantalla y no se captura por $ret