Perl
(Practical Extraction and Report Languaje) es un lenguaje de programación
surgido a inicios de los noventas, que busca antes que nada el facilitar la
elaboración de tareas comunes en sistemas tipo UNIX, donde tradicionalmente las
tareas de administración y proceso de datos se realiza con herramientas muy
rudimentarias y por demás hostiles al usuario o administrador. Pero que se
aplican sobre grandes cantidades de información (por lo regular texto) por lo
que se requiere que sean de alto rendimiento.
Perl
surgió como una opción para una gran cantidad de herramientas de UNIX en las
cuales basa su propia sintaxis, buscando el mínimo sacrificio de su desempeño
por una máxima facilidad de programación e integración, sigue la filosofía de
mantener un ambiente que sea capaz de detectar y corregir pequeñas omisiones
del programador, y de proporcionarle una forma abreviada de realizar múltiples
tareas. En una palabra, es una utilería que pretende facilitar el proceso de
grandes volúmenes de información sin sacrificar el rendimiento.
Las
plataformas donde Perl se ha desarrollado más son los servidores UNIX, por sus
necesidades de administración y lo robusto de su manejo de memoria y de
procesos (requisitos de PERL hacia el S.O.) además de la facilidad de Perl para
realizar los así llamados CGIs, interfaces para comunicar recursos del servidor
con un servicio de Internet particular (como podría ser WWW o gopher), En otras
plataformas, PC en particular, se han desarrollado versiones que mantienen un
razonable grado de funcionalidad, pero en realidad, el sistema DOS no tiene un
manejo lo bastante bueno de los procesos o de la memoria para permitir a PERL
dar un buen desempeño, además de que no es común ver en PC necesidades de
administración de la magnitud de un servidor institucional. Sin embargo, puede
practicarse la programación en PERL de PC, o incluso elaborar programas de
reporte en el , sin embargo, es algo
que no se ha popularizado hasta hoy.
Perl
no establece ninguna filosofía de programación (de hecho, no se puede decir que
sea orientado a objetos, modular o estructurado aun cuando soporta directamente
todos estos paradigmas), los objetivos que se tuvieron en cuenta al diseñar la
sintaxis de Perl fueron la facilidad de aprendizaje y de uso y la claridad de
código, las cuales, se consideran necesarios (aunque pueden escribirse
programas en Perl complejos e inteligibles si así se desea). Por si fuese poco, Perl no es ni un
compilador ni un interprete, esta en un punto intermedio, cuando se a ejecuta
un programa en Perl, se compila el código fuente a un código intermedio en
memoria, se le optimiza (como si elaborará un programa ejecutable) pero es
ejecutado por un motor, como si se tratase de un interprete. El resultado
final, es que utilizamos algo que se comporta como un interprete pero que tiene
un rendimiento comparativo al de programas compilados.
Perl
no obliga a casi nada, así pues, lo que plantea como estructura básica es mas
bien una convención que un requisito del lenguaje, a diferencia de Pascal (por
ejemplo) Perl no tiene una plantilla para sus programas y si se adoptan algunos
protocolos es solo por comodidad.
Este tipo de datos
es exclusivo de Perl 5, Perl 4 usa los type globs para realizar algunas de
estas funciones, pero el proceso es más complicado. Las referencias son el
equivalente lógico de los apuntadores, son un tipo de dato que no contiene
información en si misma, sino que permite manejar indirectamente los datos
contenidos en otra entidad.
Las referencias,
sin embargo, no forman una clase nueva de datos, sino que son tratados como un
tipo mas de escalar.
Uno
de los usos mas probados y comunes de Perl es el procesamiento de archivos de
texto para generar otros archivos (por lo regular de texto) que implican cierto
proceso de los datos leídos originalmente. Además, Perl no conoce mas entrada
que la proveniente de archivos (asociando la entrada, salida y salida de
errores a archivos "de ambiente") .
Como
en cualquier otro lenguaje, el ciclo de uso normal de un archivo es: Apertura
Mediante "open" inicializa una variable de archivo Uso Lectura
secuencial por líneas Cerrado Mediante close
Perl tiene implementaciónes para manejar archivos binarios y archivos aleatorios, pero el uso de archivos de texto secuenciales es lo mas común en UNIX.