The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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 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
    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
    perl5141delta       Cambios en la versión 5.14.1
    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