NOMBRE

perl - El intérprete del lenguaje Perl 5

SINOPSIS

perl [ -sTtuUWX ] [ -hv ] [ -V[:var_config] ] [ -cw ] [ -d[t][:depurador] ] [ -D[número/lista] ] [ -pna ] [ -Fpatrón ] [ -l[octal] ] [ -0[octal/hexadecimal] ] [ -Idir ] [ -m[-]módulo ] [ -M[-]'módulo...' ] [ -f ] [ -C [número/lista] ] [ -S ] [ -x[dir] ] [ -i[extensión] ] [ [-e|-E] 'comando' ] [ -- ] [ archivo_programa ] [ argumento ]...

CÓMO OBTENER AYUDA

El programa perldoc proporciona acceso a toda la documentación incluida en Perl. Puede obtener más documentación, tutoriales y soporte de la comunidad en línea en http://www.perl.org/.

Si nunca ha programado en Perl, debe empezar por ejecutar perldoc perlintro para leer una introducción general para principiantes y aprender a orientarse por la amplia documentación de Perl. Ejecute perldoc perldoc para ver qué más puede hacer con <perldoc>.

Para facilitar el acceso, el manual de perl se ha dividido en varias secciones.

Introducción

perl		Información general sobre Perl (esta sección)
perlintro		Introducción a Perl para principiantes
perltoc		Tabla de contenido de la documentación de Perl

Tutoriales

perlreftut		Breve introducción a las referencias
perldsc		Introducción a las estructuras de datos
perllol		Estructuras de datos: arrays de arrays

perlrequick 	Guía rápida de las expresiones regulares
perlretut		Tutorial de expresiones regulares

perlboot		Programación orientada a objetos para principiantes
perltoot		Programación orientada a objetos, parte 1
perltooc		Programación orientada a objetos, parte 2
perlbot		Trucos y ejemplos de POO

perlperf		Rendimiento y técnicas de optimización

perlstyle		Guía de estilo

perlcheat		Referencia rápida de Perl
perltrap		Trampas para los incautos
perldebtut		Tutorial de depuración

perlfaq		Preguntas más frecuentes
  perlfaq1		Preguntas generales sobre Perl
  perlfaq2		Cómo obtener y aprender a utilizar Perl
  perlfaq3		Herramientas de programación
  perlfaq4		Manipulación de datos
  perlfaq5		Archivos y formatos
  perlfaq6		Expresiones regulares
  perlfaq7		Problemas del lenguaje Perl
  perlfaq8		Interacción con el sistema
  perlfaq9		Conexión a redes

Manual de referencia

perlsyn		Sintaxis
perldata		Estructuras de datos
perlop		Operadores y precedencia
perlsub		Subrutinas
perlfunc		Funciones integradas
  perlopentut	Tutorial de open()
  perlpacktut	Tutorial de pack() y unpack()
perlpod		Documentación en texto simple (POD)
perlpodspec 	Especificación del formato POD
perlpodstyle	Guía de estilo para POD
perlrun		Ejecución y opciones de ejecución
perldiag		Mensajes de diagnóstico
perllexwarn 	Advertencias y control de advertencias
perldebug		Depuración
perlvar		Variables predefinidas
perlre		Expresiones regulares: el resto de la historia
perlrebackslash	Secuencias de escape en expresiones regulares
perlrecharclass	Clases de caracteres en expresiones regulares
perlreref		Referencia rápida de expresiones regulares
perlref		Referencias: el resto de la historia
perlform		Formatos
perlobj		Objetos
perltie		Objetos Perl ocultos en variables simples
  perldbmfilter	Filtros DBM

perlipc		Comunicación entre procesos
perlfork		Información sobre fork()
perlnumber		Semántica de números

perlthrtut		Tutorial de uso de hilos de ejecución

perlport		Guía de portabilidad
perllocale		Compatibilidad con la configuración regional
perluniintro	Introducción a Unicode
perlunicode 	Compatibilidad con Unicode
perlunifaq		Preguntas más frecuentes sobre Unicode
perluniprops	Índice de propiedades de Unicode versión 6.0.0
perlunitut		Tutorial de Unicode
perlebcdic		Ejecución de Perl en plataformas EBCDIC

perlsec		Seguridad

perlmod		Funcionamiento de un módulo Perl
perlmodlib		Programación y utilización de módulos Perl
perlmodstyle	Cómo programar módulos Perl con estilo
perlmodinstall	Instalación de módulos de CPAN
perlnewmod		Preparar la distribución de un módulo Perl nuevo
perlpragma		Programación de un pragma de usuario

perlutil		Utilidades empaquetadas en una distribución Perl

perlcompile 	Herramientas de compilación de Perl

perlfilter		Filtros de código fuente

perlglossary	Glosario

Componentes e interfaz con el lenguaje C

perlembed		Formas de integrar Perl en una aplicación C o C++
perldebguts 	Componentes y consejos para la depuración
perlxstut		Tutorial de XS
perlxs		Interfaz de programación de aplicaciones XS
perlclib		Sustitutos internos de la biblioteca de C estándar
perlguts		Funciones internas para crear extensiones
perlcall		Convenciones de llamada desde C
perlmroapi		Interfaz de complementos: resolución de métodos
perlreapi		Interfaz de complementos: expresiones regulares
perlreguts		Componentes del motor de expresiones regulares

perlapi		Lista de API
perlintern		Funciones internas de Perl
perliol		API en C para implementar en Perl las capas de E/S
perlapio		Interfaz de abstracción de E/S interna

perlhack		Guía para hackers
perlsource		Guía del árbol de código fuente
perlinterp		Descripción del código fuente y el funcionamiento del intérprete de Perl
perlhacktut 	Tutorial de creación de una revisión sencilla de código C
perlhacktips	Consejos para modificar el código C de los componentes de Perl
perlpolicy		Directivas de desarrollo de Perl
perlgit		Uso de git con el repositorio de Perl

Varios

perlbook		Información de libros sobre Perl
perlcommunity	Información sobre la comunidad Perl
perltodo		Tareas pendientes

perldoc		Consulta de la documentación de Perl en formato Pod

perlhist		Registros históricos de Perl
perldelta		Cambios con respecto a la versión anterior
perl5140delta	Cambios en la versión 5.14.0
perl51311delta	Cambios en la versión 5.13.11
perl51310delta	Cambios en la versión 5.13.10
perl5139delta	Cambios en la versión 5.13.9
perl5138delta	Cambios en la versión 5.13.8
perl5137delta	Cambios en la versión 5.13.7
perl5136delta	Cambios en la versión 5.13.6
perl5135delta	Cambios en la versión 5.13.5
perl5134delta	Cambios en la versión 5.13.4
perl5133delta	Cambios en la versión 5.13.3
perl5132delta	Cambios en la versión 5.13.2
perl5131delta	Cambios en la versión 5.13.1
perl5130delta	Cambios en la versión 5.13.0
perl5123delta	Cambios en la versión 5.12.3
perl5122delta	Cambios en la versión 5.12.2
perl5121delta	Cambios en la versión 5.12.1
perl5120delta	Cambios en la versión 5.12.0
perl5115delta	Cambios en la versión 5.11.5
perl5114delta	Cambios en la versión 5.11.4
perl5113delta	Cambios en la versión 5.11.3
perl5112delta	Cambios en la versión 5.11.2
perl5111delta	Cambios en la versión 5.11.1
perl5110delta	Cambios en la versión 5.11.0
perl5101delta	Cambios en la versión 5.10.1
perl5100delta	Cambios en la versión 5.10.0
perl595delta	Cambios en la versión 5.9.5
perl594delta	Cambios en la versión 5.9.4
perl593delta	Cambios en la versión 5.9.3
perl592delta	Cambios en la versión 5.9.2
perl591delta	Cambios en la versión 5.9.1
perl590delta	Cambios en la versión 5.9.0
perl589delta	Cambios en la versión 5.8.9
perl588delta	Cambios en la versión 5.8.8
perl587delta	Cambios en la versión 5.8.7
perl586delta	Cambios en la versión 5.8.6
perl585delta	Cambios en la versión 5.8.5
perl584delta	Cambios en la versión 5.8.4
perl583delta	Cambios en la versión 5.8.3
perl582delta	Cambios en la versión 5.8.2
perl581delta	Cambios en la versión 5.8.1
perl58delta 	Cambios en la versión 5.8.0
perl573delta	Cambios en la versión 5.7.3
perl572delta	Cambios en la versión 5.7.2
perl571delta	Cambios en la versión 5.7.1
perl570delta	Cambios en la versión 5.7.0
perl561delta	Cambios en la versión 5.6.1
perl56delta 	Cambios en la versión 5.6
perl5005delta	Cambios en la versión 5.005
perl5004delta	Cambios en la versión 5.004

perlartistic	Licencia Artistic de Perl
perlgpl		Licencia GNU General Public License

Idiomas específicos

perlcn		Perl para chino simplificado (en EUC-CN)
perljp		Perl para japonés (en EUC-JP)
perlko		Perl para coreano (en EUC-KR)
perltw		Perl para chino tradicional (en Big5)

Información específica de plataformas

perlaix		Notas para AIX
perlamiga		Notas para AmigaOS
perlbeos		Notas para BeOS
perlbs2000		Notas para POSIX-BC BS2000
perlce		Notas para WinCE
perlcygwin		Notas para Cygwin
perldgux		Notas para DG/UX
perldos		Notas para DOS
perlepoc		Notas para EPOC
perlfreebsd 	Notas para FreeBSD
perlhaiku		Notas para Haiku
perlhpux		Notas para HP-UX
perlhurd		Notas para Hurd
perlirix		Notas para Irix
perllinux		Notas para Linux
perlmacos		Notas para Mac OS (Classic)
perlmacosx		Notas para Mac OS X
perlmpeix		Notas para MPE/iX
perlnetware 	Notas para NetWare
perlopenbsd 	Notas para OpenBSD
perlos2		Notas para OS/2
perlos390		Notas para OS/390
perlos400		Notas para OS/400
perlplan9		Notas para Plan 9
perlqnx		Notas para QNX
perlriscos		Notas para RISC OS
perlsolaris 	Notas para Solaris
perlsymbian 	Notas para Symbian
perltru64		Notas para Tru64
perluts		Notas para UTS
perlvmesa		Notas para VM/ESA
perlvms		Notas para VMS
perlvos		Notas para Stratus VOS
perlwin32		Notas para Windows

En un sistema Unix, esta documentación estará también disponible, por lo general, en forma de páginas de manual que se pueden consultar con el programa man.

Si sucede algo raro con el programa y no está seguro de dónde debe buscar ayuda, pruebe primero el modificador -w. Normalmente le indicará dónde está el problema.

DESCRIPCIÓN

Oficialmente, Perl significa Practical Extraction and Report Language (Lenguaje práctico para la extracción de datos y creación de informes), salvo cuando no se usa para eso.

Perl se creó como un lenguaje optimizado para procesar archivos de texto, a fin de extraer información y utilizarla para generar informes. Pronto se convirtió en un lenguaje útil para muchas tareas de administración de sistemas. Con los años, Perl se ha convertido en un lenguaje de programación de propósito general. Se utiliza para todo tipo de desarrollos, desde "programas de una línea" hasta aplicaciones a gran escala.

El lenguaje se diseñó para ser práctico (fácil de usar, eficaz, completo), más que estético (reducido, elegante, minimalista).

Perl combina (en opinión del autor) algunas de las mejores características de C, sed, awk y sh, por lo que las personas familiarizadas con estos lenguajes aprenderán Perl fácilmente (los historiadores de los lenguajes también destacarán algunos vestigio de csh, Pascal e incluso BASIC-PLUS). La sintaxis de expresiones es muy parecida a la de C. A diferencia de la mayoría de las utilidades Unix, Perl no limita de forma arbitraria el tamaño de los datos; si el sistema dispone de memoria suficiente, puede "succionar" un archivo completo como una sola cadena. La profundidad de recursión es ilimitada. Y las tablas usadas por los hashes (a veces denominados "arrays asociativos") se expanden cuando es necesario para que el rendimiento no se vea afectado. Perl puede utilizar sofisticadas técnicas de detección de patrones para analizar rápidamente grandes cantidades de datos. Aunque está optimizado para el procesamiento de texto, también incluye muchas herramientas magníficas para procesar datos binarios.

Pero esto no es todo.

En 1993 (véase perlhist) se lanzó Perl 5, prácticamente una reescritura completa del lenguaje, que proporciona las siguientes ventajas adicionales:

Entre otras...

DISPONIBILIDAD

Perl está disponible para la mayoría de los sistemas operativos (incluidas prácticamente todas las plataformas Unix). Encontrará una lista en la sección "Plataformas compatibles" de perlport.

ENTORNO

Vea perlrun.

AUTOR

Larry Wall <larry@wall.org>, con la ayuda de muchas personas.

Si considera que sus éxitos con Perl y sus testimonios pueden ayudar a otros programadores que desean utilizar Perl en sus proyectos, o si simplemente quiere expresar su gratitud a Larry y a los demás programadores de Perl, escriba un mensaje a la dirección perl-thanks@perl.org .

ARCHIVOS

"@INC"			ubicación de bibliotecas de Perl

VEA TAMBIÉN

http://www.perl.org/       página de inicio del lenguaje Perl
http://www.perl.com/       artículos sobre Perl (O'Reilly)
http://www.cpan.org/       Comprehensive Perl Archive Network
http://www.pm.org/         el sitio de Perl Mongers

DIAGNÓSTICO

El pragma use warnings (y el modificador -w) produce algunos diagnósticos muy interesantes.

Encontrará en perldiag las descripciones de todos los diagnósticos de Perl. El pragma use diagnostics convierte automáticamente las advertencias y errores de Perl, normalmente escuetos, en estos mensajes más desarrollados.

Los errores de compilación le indicarán el número de línea del error, además del siguiente símbolo o tipo de símbolo que iba a ser examinado. (En un script pasado a Perl a través de modificadores -e, cada -e cuenta como una línea.)

Los scripts setuid tienen restricciones adicionales que pueden producir mensajes de error como "Insecure dependency" (dependencia insegura). Vea perlsec.

No olvide que es muy importante utilizar el modificador -w.

ERRORES

El uso del modificador -w no es obligatorio.

Perl depende de las definiciones de hardware para diversas operaciones, como la conversión de tipos, atof() o la salida de números de punto flotante con sprintf().

Si stdio requiere ejecutar seek o eof entre lecturas y escrituras para una secuencia determinada, Perl también lo requerirá (esto no se aplica a sysread() ni a syswrite()).

Aunque ninguno de los tipos de datos predefinidos tiene un límite de tamaño (aparte del tamaño de la memoria disponible), hay algunos límites arbitrarios. Por ejemplo, un nombre de variable no puede tener más de 251 caracteres. Por otra parte, los números de línea especificados por los diagnósticos se almacenan internamente como enteros cortos, por lo que están limitados a un máximo de 65535 (cifras más altas quedarán afectadas por el desbordamiento).

Puede enviar informes de error a través de la dirección perlbug@perl.org (no olvide incluir toda la información de configuración emitida por el programa myconfig en el árbol de código fuente de perl, o por perl -V). Si ha logrado compilar perl, puede utilizar el script perlbug del subdirectorio utils/ para enviar informes de error.

En realidad Perl significa Pathologically Eclectic Rubbish Lister (Presentador de basura patológicamente ecléctico), pero nadie debe enterarse de esto :-).

NOTAS

El lema de Perl es "Se puede hacer de varias maneras". Dejamos como ejercicio para el lector averiguar de cuántas maneras se puede hacer :-).

Las tres virtudes principales de un buen programador son la pereza, la impaciencia y la confianza en sí mismo. Consulte el "Libro del Camello" (en concreto, camello arábigo, o dromedario) para averiguar por qué.

TRADUCTORES

  • Joaquín Ferrero (Tech Lead), explorer + POD2ES at joaquinferrero.com

  • Enrique Nell (Language Lead), blas.gordon + POD2ES at gmail.com

1 POD Error

The following errors were encountered while parsing the POD:

Around line 3:

Non-ASCII character seen before =encoding in 'intérprete'. Assuming CP1252