por explorer » 2012-07-14 09:15 @427
El utilizar los comandos de Unix está muy bien para ciertas aplicaciones y soluciones. Muchas veces, con la combinación de unos pocos comandos, resolvemos muchos problemas de administración o manipulación de datos.
Hay una limitación: la invocación de cada comando representa la carga y ejecución de un programa entero (pequeño, pero un programa). En ciertas situaciones, eso puede ser algo costoso, en términos de consumo de recursos de memoria y procesador. Un ejemplo son los dæmon que se ejecutan de forma periódica, para tareas administrativas (monitores, estadísticas, avisos automáticos, etc.) Si son muchos procesos y/o se ejecutan cada poco tiempo, puede ser significativo el consumo de recursos. Y no siempre estamos hablando de un PC o de un portátil. Podría ser una tableta o un móvil (celular).
Conocer estas herramientas del shell es fundamental para la gente que trabajamos en Unix, pues a veces nos encontraremos con sistemas que no tienen Perl (algo realmente extraño), así que no nos quedará más remedio que usar awk, sed, y demás familia.
Pero, teniendo Perl a mano, puede simplificar bastante el desarrollo, mantenimiento, y consumo de recursos.
Precisamente estos días me encuentro "traduciendo" muchos scripts escritos en shell, para el sistema de monitorización MRTG, con docenas de llamadas a comandos Unix, a un único programa Perl. Los tiempos de ejecución y consumo de memoria son muy apreciables.
Y lo que dice danimera también es cierto: si está en Windows, es muy posible que no disponga de esas utilerías (actualmente, solo estarán disponibles si el usuario ha instalado el paquete de herramientas Unix para Windows, o el paquete Cygwin).
En el caso de los dos ejemplos que muestra reLlene, la funcionalidad de las llamadas a sed y grep, puede ser sustituida con solo dos líneas, dentro del programa Perl.
Con esto, no estoy desmereciendo el uso del shell. Al contrario: hay que conocerlo muy bien, pues de esa manera luego se pueden entender muchas de las funcionalidades que nos da Perl.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES