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

perlootut        Tutorial de POO para principiantes

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 incluidas en una distribución Perl

perlfilter       Filtros de código fuente

perldtrace       Compatibilidad con DTrace

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
perlxstypemap    Herramientas de conversión de tipos XS C/Perl
perlclib         Sustitutos internos de funciones de la biblioteca estándar de C
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
perlhacktut      Tutorial de creación de un parche sencillo de código C
perlhacktips     Consejos para modificar el código C del núcleo 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

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
perl5160delta    Cambios en la versión 5.16.0
perl5160delta    Cambios en la versión 5.16.0
perl5142delta    Cambios en la versión 5.14.2
perl5141delta    Cambios en la versión 5.14.1
perl5140delta    Cambios en la versión 5.14.0
perl5124delta    Cambios en la versión 5.12.4
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
perl5101delta    Cambios en la versión 5.10.1
perl5100delta    Cambios en la versión 5.10.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
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

perlexperiment   Lista de funcionalidades experimentales de Perl

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

Avisos sobre documentos eliminados

perlboot
perlbot
perltodo
perltooc
perltoot

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 vestigios 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/       I<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)

  • Enrique Nell (Language Lead)