Perl

El nombre normalmente comienza con mayúscula (Perl) cuando se refiere al lenguaje y con minúscula (perl) cuando se refiere al propio programa intérprete debido a que los sistemas de ficheros Unix distinguen mayúsculas y minúsculas.

Antes del lanzamiento de la primera edición de Programming Perl era común referirse al lenguaje como perl; Randal L. Schwartz, sin embargo, forzó el nombre en mayúscula en el libro para que destacara mejor cuando fuera impreso.

El nombre es descrito ocasionalmente como «PERL» (por Practical Extraction and Report Language - ‘Lenguaje Práctico para la Extracción e Informe’).

Sin embargo, se han sugerido varios retroacrónimos, incluyendo el cómico Pathologically Eclectic Rubbish Lister (Contabilizador de Basura Patológicamente Ecléctico).

Hay un amplio sentido de lo práctico, tanto en el lenguaje Perl como en la comunidad y la cultura que lo rodean.

Incluye características si la gente las usa, tolera excepciones a las reglas y emplea la heurística para resolver ambigüedades sintácticas.

Grandes proyectos escritos en Perl son Slash, IMDb[9]​ y UseModWiki, un motor de Wiki.

Ambas operaciones están implícitas en otras -de forma notable, la cláusula use que carga bibliotecas, conocidas en Perl como módulos, implica un bloque BEGIN.

Perl es un lenguaje dinámico y tiene una gramática sensible al contexto que puede verse afectada por el código ejecutado durante una fase de ejecución intermedia (ver ejemplos [11]​).

El mantenimiento del intérprete Perl, a lo largo de los años, se ha vuelto cada vez más difícil.

El código ha sido optimizado en rendimiento a expensas de la simplicidad, claridad y unas interfaces internas más fuertes.

Nuevas características han sido añadidas, manteniendo todavía, compatibilidad virtualmente completa hacia atrás con las primeras versiones.

Sin embargo, esto no es normalmente necesario, porque Perl está incluido por defecto en la instalación de los sistemas operativos más populares.

[13]​ Perl está preinstalado en las distribuciones más populares de GNU/Linux incluyendo Gentoo, Slackware, Mandriva, Debian, RedHat y SUSE.

Se puede usar el mismo nombre para variables de diferentes tipos, sin que tengan conflictos.

Perl convertirá los strings en números y viceversa dependiendo del contexto en que sean usados.

Aunque la documentación no indica qué valor particular se devuelve como verdadero o falso (y por lo tanto no fiable), muchos operadores booleanos devuelven 1 por verdadero y el string vacío para falso (que evalúa a cero en contexto numérico).

Si, específicamente, quiere asegurarse de tener un resultado 1/0 (como en C), necesita realizar el cálculo siguiente: Una lista se define listando sus elementos, separados por comas y rodeados por paréntesis donde así sea requerido por la precedencia de los operadores.

Perl también tiene dos construcciones implícitas para bucles: grep devuelve todos los elementos de lista en que el bloque subordinado evalúa a verdadero.

Si la subrutina en cuestión no ha sido todavía declarada, es necesario, para el proceso de análisis sintáctico, poner los paréntesis.

Sin embargo, se diferenció ya antes del primer lanzamiento de Perl y desde entonces ha ido incorporando muchas más características.

Una vez que perl inicia la fase de ejecución, sin embargo, puede ser muy rápido y típicamente supera a otros lenguajes dinámicos.

Raku, la siguiente versión, tomará algunas de estas ideas como lecciones, que otros lenguajes ya han aprendido.

En el año 2000, en la conferencia Perl, Jon Orwant hizo una petición para una nueva versión del lenguaje.

Larry Wall estuvo los siguientes años digiriendo los RFC y sintetizándolos en un entorno de trabajo coherente para Perl 6.

El proyecto pugs engendró una activa comunidad Perl/Haskell centrada alrededor del canal irc #perl6 en Freenode.

Esta afición es más o menos única en Perl debido al gran número de palabras normales del Inglés que el lenguaje utiliza.

Se propone una tarea, como «escanear un string de entrada y devolver el palíndromo más grande que contenga» y los participantes intentan batir a sus oponentes escribiendo soluciones que requieran cada vez menos caracteres de código fuente Perl.

El «canónico» JAPH incluye la coma al final, aunque a menudo se omite, y otras muchas variantes que se han creado (ejemplo,[17]​ que imprime «Just Another Perl Pirate!»).

La comunidad Perl ha reservado el espacio de nombres «Acme» para los módulos que sean divertidos o experimentales.

La LAMP comprende Perl (aquí con Squid )