Si quieres interactuar con otros programas, lo normal es usar las tuberías, intercambiando la información a través de la entrada y la salida estándar.
Y para el procesado de las opciones pasadas al programa, aunque siempre es recomendable usar alguno de los módulos de gestión de parámetros, con la opción '-s' de perl puedes hacer alguna pequeña interpretación de los mismos.
Voy a ponerte un ejemplo para estos dos casos.
Supongamos un fichero de texto
Using text Syntax Highlighting
3474
4387543985 JF
34975 XS
048434 jj
2343
5345 JTA
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Y el siguiente programa
Using perl Syntax Highlighting
#!/usr/bin/perl -s
our $x;
while (<>) {
if ($x) {
chomp;
print qq("$_"\n);
}
else {
print $_;
}
}
Coloreado en 0.004 segundos, usando
GeSHi 1.0.8.4
Destacamos:
* la opción '-s' en la primera fila, para indicar que procese los argumentos que empiecen por '-'
* declaramos una variable global $x
* hacemos un bucle por la entrada estándar '<>', es decir, si no indicamos nada, el operador diamante se refiere a la entrada que el usuario haya elegido
* según el valor de $x, el programa hará una cosa distinta con cada línea leída por la entrada estándar
Ejemplo de uso.
Using text Syntax Highlighting
explorer@casa:~/Documentos/Desarrollo> ./kk.pl kk.txt
3474
4387543985 JF
34975 XS
048434 jj
2343
5345 JTA
explorer@casa:~/Documentos/Desarrollo> ./kk.pl -x kk.txt
"3474"
"4387543985 JF"
"34975 XS"
"048434 jj"
"2343"
"5345 JTA"
explorer@casa:~/Documentos/Desarrollo> cat kk.txt | ./kk.pl
3474
4387543985 JF
34975 XS
048434 jj
2343
5345 JTA
explorer@casa:~/Documentos/Desarrollo> cat kk.txt | ./kk.pl -x
"3474"
"4387543985 JF"
"34975 XS"
"048434 jj"
"2343"
"5345 JTA"
Coloreado en 0.000 segundos, usando
GeSHi 1.0.8.4
Como ves, las salidas son distintas según esté presente la opción '-x', y admitimos, tanto el procesado de un fichero indicado como argumento, como un flujo de líneas entubadas desde otro comando.
Más información en
perldoc perlrun.