Introducción
En este tutorial vamos a aprender a como ejecutar programas externos a perl como si se hiciera desde el command line, tanto de UNIX como de Windows.
Verás que es muy sencillo pero muy útil pues podrás ejecutar programas y recibir respuesta de ellos.
Comando system()
Perl tiene un comando que se llama system() con el cual podremos ejecutar cosas como si fuera desde el command line, su sintáxis es así:
system("COMANDOS")
Donde comandos es lo que queremos ejecutar.
Digamos que estamos en Windows y queremos crear un directorio en c: (se que con perl se puede hacer pero lo hago como ejemplo):
system('mkdir test');
Al ejecutar el código, se creará un directorio.
Ahora, digamos que hicimos una aplicación en C, pero la queremos ejecutar con nuestro perl, lo podríamo hacer de la siguiente manera:
system('c:/ruta/miAplicacion.exe');
Como ves el comando system es muy útil y nos sirve para automatizar procesos de nuestro sistema con un simple programa de perl.
Las comillas invertidas
Vimos como system() es muy útil, pero ¿qué pasaría si quisieramos recibir respuesta de lo que ejecutamos?
Para hacer esto usamos las comillas invertidas, que funcionan igual que system() pero a diferencia de ella si recibe un return. Para ver como funciona esto digamos que queremos desplegar el directorio en el que estamos, lo haríamos de esta manera:
my $resultado = `dir`;
print $resultado;
Al ejecutar este código se desplegará el directorio tal y como lo veríamos en MS-DOS.
Tienes que tener mucho cuidado y fijarte que use comillas invertidas ` que son como los acentos, de hecho es el mismo caracter.
Al igual que system() nuestros comando pueden ser complejos, podrías llamar a una aplicación que regresa el número de memoria usada:
my $memoria_usada = `c:/ruta/memoria.exe`;
print $memoria_usada;
En este caso se ejecutará la aplicación y la respuesta será captada por nuestra variable y luego desplegada.
Notas Finales
Como viste ejecutar programas y comandos externos a perl es sumamente sencillo.
Lo único que te recomiendo es que antes hagas tus pruebas desde el command line para ver que si recibas la respuesta que quieres o que si se ejecute como deseas antes de hacerlo con perl.