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

NOMBRE

perlglossary - Glosario de Perl

DESCRIPCIÓN

Un glosario de términos (técnicos y de otro tipo) que se usan en la documentación de Perl. Otras fuentes útiles son: Free On-Line Dictionary of Computing http://foldoc.org/, Jargon File http://catb.org/~esr/jargon/ y Wikipedia http://www.wikipedia.org/.

A

advertencia

Mensaje que se imprime en la secuencia "STDERR" para indicar que puede haber un problema, pero que no es necesario detener la ejecución. Vea "warn" in perlfunc y el pragma warnings.

algoritmo

Secuencia bien definida de pasos, lo suficientemente bien explicados como para que hasta un equipo informático pueda seguirlos.

alias

Apodo de algo, que se comporta en todos los sentidos como si se usara el nombre original. Se crean alias temporales en la variable de los bucles foreach, en la variable $_ para los operadores map y grep, en $a y $b al ejecutar la función de comparación sort y en cada elemento de @_ para los "argumentos reales" de la llamada a una subrutina. Se crean alias permanentes explícitamente en paquetes mediante la importación de símbolos o la asignación a typeglobs. La declaración our crea explícitamente alias de ámbito léxico para las variables de paquete.

almacenamiento en búfer de bloques

Método para lograr una entrada y salida eficiente pasando un bloque cada vez. De manera predeterminada, Perl realiza el almacenamiento en búfer de bloques en archivos de disco. Vea "búfer" y "almacenamiento en búfer de comandos".

almacenamiento en búfer de comandos

Mecanismo de Perl que permite almacenar la salida de cada "comando" de Perl y después volcarlo como una sola solicitud al "sistema operativo". Para habilitarlo se establece la variable $| ($AUTOFLUSH) en un valor verdadero. Se usa cuando no se quiere que queden datos a la espera, sin ir a donde se supone que tienen que ir; esto es algo que puede suceder, ya que en un "archivo" o una "tubería" se usa "almacenamiento en búfer de bloques" de manera predeterminada.

almacenamiento en búfer de líneas

Se usa en una secuencia de salida de "E/S estándar" que vuelca el "búfer" al recibir cada "carácter de nueva línea". Muchas bibliotecas de E/S estándar configuran automáticamente el almacenamiento en búfer de líneas en la salida que se dirige al terminal.

alternativas

Lista de elecciones posibles de las que solo se puede seleccionar una, como en "¿Qué sobre elige, A, B o C?". En las expresiones regulares dos alternativas se separan mediante una sola barra vertical: |. En expresiones Perl normales, las alternativas se separan mediante una doble barra vertical: ||. En expresiones booleanas, las alternativas lógicas se separan mediante || u or.

ámbito

Lo que es visible desde una variable. Perl dispone de dos mecanismos de visibilidad: realiza un "control de ámbito dinámico" de variables locales, lo que significa que el resto del bloque y las subrutinas llamadas por el resto del bloque pueden ver las variables locales para ese bloque. Asimismo, Perl realiza "control de ámbito léxico" de variables my, lo que significa que el resto del bloque puede ver la variable, pero otras subrutinas llamadas por el bloque no la pueden ver.

análisis léxico

Nombre elegante de "tokenizar".

analizar

El arte sutil, y a veces brutal, de intentar convertir un programa posiblemente mal escrito en un "árbol de sintaxis" válido.

ancho cero

Aserción de subpatrón que coincide con la "cadena nula" entre caracteres.

anónimo

Se usa para describir un "referente" que no es directamente accesible a través de una "variable" con nombre. Un referente de este tipo debe ser accesible indirectamente a través de al menos una "referencia estricta". Cuando desaparece la última referencia estricta, se destruye sin compasión el referente anónimo.

árbol de análisis

Vea "árbol de sintaxis".

árbol de sintaxis

Representación interna del programa en la que las construcciones de bajo nivel cuelgan de las construcciones de nivel más alto que las contienen.

archivo

Conjunto de datos con nombre que suele estar almacenado en disco, dentro de un "directorio" de un "sistema de archivos". Puede considerarse equivalente a un documento, si le agradan las metáforas relacionadas con la oficina. Los sistemas de archivos modernos permiten asignar varios nombres a un archivo. Algunos archivos, como los directorios y los dispositivos, tienen propiedades especiales.

archivo de encabezado

Archivo que contiene algunas definiciones necesarias que hay que incluir antes que el resto del programa para realizar determinadas operaciones "oscuras". Los archivos de encabezado de C tienen la extensión .h. En realidad Perl no tiene archivos de encabezado, pero históricamente ha utilizado a veces archivos .h traducidos con una extensión .ph. Vea "require" in perlfunc. (Los archivos de encabezado han sido reemplazados por el mecanismo de módulos).

archivo ejecutable

Archivo con una marca especial que indica al "sistema operativo" que se puede ejecutar como un programa. Se suele usar la forma abreviada "ejecutable".

archivo normal

Archivo que no es un "directorio", un "dispositivo", una "tubería" o un "socket" con nombre, o un "vínculo simbólico". Perl usa la prueba de archivo -f para identificar archivos normales. A veces se llama archivo "simple".

argumento

Elementos de datos que se suministra a un programa, una "subrutina", una "función" o un "método" para indicarle qué debe hacer. También se denomina "parámetro".

argumentos de línea de comandos

Los valores que se suministran con un nombre de programa para indicar a la "shell" que debe ejecutar un "comando". Estos valores se pasan a un programa Perl a través de @ARGV.

argumentos formales

Nombres genéricos con los que se designa a los argumentos de una "subrutina". En muchos lenguajes los argumentos formales siempre reciben nombres individuales, pero en Perl solo son los elementos de un array. Los argumentos formales de un programa Perl son $ARGV[0], $ARGV[1], etc. De manera similar, los argumentos formales de una subrutina Perl son $_[0], $_[1], etc. Puede dar a los argumentos nombres individuales asignando los valores a una lista my. Vea también "argumentos reales".

argumentos reales

Los valores escalares que se suministran a una "función" o "subrutina" al llamarla. Por ejemplo, al realizar la llamada encendido("activar"), la cadena "activar" es el valor del argumento. Vea también "argumento" y "argumentos formales".

ARGV

Nombre del array que contiene el "vector" de argumentos de la línea de comandos. Si usa el operador <> vacío, "ARGV" es el nombre tanto del "identificador de archivo" que se usa para recorrer los argumentos como del "escalar" que contiene el nombre del archivo de entrada actual.

arquitectura

El tipo de equipo con el que se trabaja, donde "tipo de equipo" quiere decir todos los equipos con código máquina compatible. Como los programas Perl son (normalmente) archivos de texto simple, no imágenes ejecutables, un programa Perl es mucho menos sensible a la arquitectura en la que se ejecuta que los programas escritos en otros lenguajes (como C) que se compilan a código máquina. Vea también "plataforma" y "sistema operativo".

array

Secuencia ordenada de valores, almacenados de forma que se pueda acceder a cualquiera de esos valores mediante un "subíndice" entero que especifique la posición del valor en la secuencia.

array asociativo

Vea "hash". Por favor.

array multidimensional

Array en el que cada elemento individual se localiza mediante varios subíndices. Perl los implementa mediante referencias (vea perllol y perldsc).

ASCII

American Standard Code for Information Interchange (un juego de caracteres de 7 bits que solo es adecuado para representar texto en inglés de una forma insuficiente). Se suele usar de manera informal para describir los primeros 128 valores de los distintos juegos de caracteres ISO-8859-X, un conjunto de códigos de 8 bits mutuamente incompatibles que a veces se describen como la mitad de ASCII. Vea también "Unicode".

aserción

Componente de una "expresión regular" que debe ser verdadero para que el patrón coincida, pero que no tiene por qué coincidir necesariamente con ningún carácter. Se suele usar específicamente para hacer referencia a una aserción de "ancho cero".

asignación

Operador cuya misión en la vida es cambiar el valor de una "variable".

asincrónico

Se dice de un evento o actividad cuyo orden temporal es indeterminado porque suceden demasiadas cosas a la vez. Así, un evento asincrónico es un evento que puede suceder en cualquier momento, pero no se sabe cuándo.

asociatividad

Determina si en "A "operador" B "operador" C" se aplica primero el "operador" de la izquierda o el "operador" de la derecha cuando ambos operadores tienen la misma precedencia. Los operadores como + son asociativos por la izquierda, mientras que operadores como ** son asociativos por la derecha. En perlop encontrará una lista de operadores y su asociatividad.

atadura

Unión de una variable mágica a su clase de implementación. Vea "tie" in perlfunc y perltie.

átomo

Componente de "expresión regular" que puede coincidir con una "subcadena" de uno o más caracteres y que cualquier "cuantificador" que venga a continuación puede tratar como una unidad sintáctica indivisible. (Compare esta definición con la de "aserción", que detecta algo de "ancho cero" y no se puede cuantificar).

atributo

Nueva característica que permite declarar variables y subrutinas como modificadores, como en sub foo : metodo bloqueado. También es un nombre alternativo para una "variable de instancia" de un "objeto".

autogeneración

Característica de la "sobrecarga de operador" de objetos que permite deducir de forma razonable mediante operadores básicos el comportamiento de determinados operadores. Se supone que los operadores sobrecargados tendrán generalmente las mismas relaciones que los operadores normales. Vea perlop.

autoincrementar

Sumar automáticamente una unidad de algo; por eso el operador correspondiente se llama ++. Si en lugar de sumar se resta automáticamente una unidad de algo, la operación se llama "autodecrementar".

autovivificación

Palabra grecorromana que significa "darse vida a uno mismo". En Perl, las ubicaciones de almacenamiento (valores-izquierda) se generan espontáneamente cuando es necesario. Esto incluye la creación de cualquier valor de "referencia estricta" que apunte al siguiente nivel de almacenamiento. La asignación $a[5][5][5][5][5] = "quinteto" crea potencialmente cinco ubicaciones de almacenamiento escalar, además de cuatro referencias (en las cuatro primeras ubicaciones de escalares) que apuntan a cuatro arrays anónimos nuevos (que contendrán las cuatro últimas ubicaciones escalares). Pero la idea de la autovivificación es no tener que preocuparnos de esto.

AV

Abreviatura de "array value" (valor de array), que hace referencia a uno de los tipos de datos internos de Perl que contiene un "array". El tipo "AV" es una subclase de "SV".

avaricioso

Se dice de un "subpatrón" cuyo "cuantificador" desea detectar la mayor cantidad posible de cosas.

awk

Término de edición descriptivo; abreviatura de "awkward" (poco práctico). Casualmente, también hace referencia a un venerable lenguaje de procesamiento de texto del que Perl derivó algunas de sus ideas de alto nivel.

azúcar sintáctico

Forma alternativa y más sencilla de escribir algo; un método abreviado.

B

bendecir

En el mundo empresarial, conceder oficialmente la aprobación a algo. Por ejemplo, "El vicepresidente del departamento de ingeniería ha bendecido el proyecto WebCruncher." De forma similar, en Perl significa conceder la aprobación oficial a un "referente" para que pueda funcionar como un "objeto" (por ejemplo, un objeto WebCruncher). Vea "bless" in perlfunc.

biblioteca

Generalmente es una colección de procedimientos. Antiguamente se llamaba así a un conjunto de subrutinas de un archivo .pl. En la actualidad suele usarse para hacer referencia al conjunto completo de módulos Perl del sistema.

big-endian

Según Swift, alguien que empieza a comer un huevo por su extremo más ancho (juego de palabras; en inglés "end" significa extremo). También se usa para designar a los equipos que almacenan el "byte" más significativo de una palabra en una dirección de byte inferior a la del byte menos significativo. Estos equipos se suelen considerar superiores a los equipos little-endian. Vea también "little-endian".

binario

Que tiene que ver con números representados en base 2. Eso significa que hay básicamente dos números, 0 y 1. También se usa para describir un "archivo que no es de texto", posiblemente porque dicho archivo usa todos los bits binarios de sus bytes. Con la llegada de "Unicode", esta distinción, ya de por sí sospechosa, tiene aún menos sentido.

bit

Entero en el intervalo de 0 a 1, ambos incluidos. La unidad de almacenamiento de información más pequeña posible. Un octavo de un "byte" o de un dólar. En inglés, el término "Pieces of Eight" (partes de ocho) viene de la posibilidad de dividir el antiguo dólar español en 8 partes, cada una de las cuales se podía usar como dinero. Es por eso que actualmente una moneda de 25 centavos sigue llamándose "two bits" (dos partes).

bit de ejecución

Marca especial que indica al sistema operativo que puede ejecutar este programa. En realidad hay tres bits de ejecución en Unix, y el que se usa dependerá de si usted es el único propietario del archivo, si forma parte de un grupo de propietarios, o si no es propietario del archivo.

bits de permiso

Bits que el "propietario" de un archivo establece o quita para permitir o prohibir el acceso a otras personas. Estos bits de marca forman parte de la palabra de "modo" devuelta por la función predefinida stat cuando se pregunta sobre un archivo. En sistemas Unix puede consultar la página de manual ls(1) para obtener más información.

bloc

Abreviatura de "bloc de notas".

bloc de notas

Área en la que una invocación específica de un archivo o una subrutina concretos mantiene algunos de sus valores temporales, incluidas las variables de ámbito léxico.

BLOQUE

Construcción sintáctica formada por una secuencia de instrucciones Perl escritas entre llaves. Las instrucciones if y while, por ejemplo, también se definen en términos de BLOQUES. A veces también usamos la palabra "bloque" para hacer referencia a un ámbito léxico; es decir, una secuencia de instrucciones que actúan como un "BLOQUE", por ejemplo, dentro de una función eval o en un archivo, aunque las instrucciones no estén delimitadas por llaves.

bloqueo-bloque

Lo que un "proceso" hace mientras espera algo: "Mi proceso se bloqueó esperando la respuesta del disco.". La segunda acepción hace referencia a un fragmento de datos grande, del tamaño que al "sistema operativo" le gusta procesar (normalmente una potencia de dos, como 512 o 8192). Normalmente se refiere a un fragmento de datos que se lee de (o se escribe en) un archivo del disco.

booleano

Valor que es "verdadero" o "falso".

BSD

Droga psicoactiva, popular en los años ochenta, y probablemente diseñada en la U. C. Berkeley o en sus alrededores. Es similar en muchos aspectos al medicamento "System V", que solo se puede obtener con receta, pero infinitamente más útil. (O, al menos, más divertida). El nombre químico completo es "Berkeley Standard Distribution".

bucle

Construcción que realiza algo repetidamente, como una montaña rusa.

búfer

Ubicación para el almacenamiento temporal de datos. El "almacenamiento en búfer de bloques" significa que los datos se pasan a su destino cuando se llena el búfer. El "almacenamiento en búfer de líneas" significa que se pasa el contenido siempre que se recibe una línea completa. El "almacenamiento en búfer de comandos" significa que los datos se pasan cada vez que se ejecuta un comando print (o equivalente). Si no se usa búfer para la salida, el sistema la procesa de byte en byte sin usar espacio de almacenamiento. Esto puede ser muy ineficaz.

búfer de captura, grupo de captura

Estos dos términos son sinónimos: es una subcadena capturada por un subpatrón de expresión regular.

byte

En la mayoría de los contextos es un elemento de datos formado por ocho bits.

bytecode

Lenguaje tipo pidgin que hablan los androides cuando no desean revelar su orientación (vea "endian"). El nombre proviene de algunos lenguajes similares hablados (por razones parecidas) entre compiladores e intérpretes a finales del siglo XX. Estos lenguajes se caracterizan porque representan todo como una secuencia de bytes independiente de la arquitectura.

C

C

Lenguaje muy querido por muchos programadores por su definiciones de tipos inside-out, sus reglas de "precedencia" inescrutables y la intensa sobrecarga del mecanismo de llamada de funciones. (En realidad, los programadores se pasaron a C porque les gustaban más los identificadores en minúsculas que en mayúsculas). Perl está escrito en C, por lo que no es sorprendente que haya heredado muchas ideas de C.

cadena

Secuencia de caracteres como "Dijo !@#*&%@#*?!". Una cadena no tiene por qué ser completamente imprimible.

cadena de bits

Secuencia de bits que, por una vez, se puede considerar una secuencia de bits.

cadena de versión

Cadena de "versión" o de tipo "vector" especificada mediante v seguida de una serie de enteros decimales separados por puntos; por ejemplo, v1.20.300.4000. Cada número se convierte en un "carácter" con el valor ordinal especificado. (La v es opcional si hay al menos tres enteros.)

cadena nula

Cadena que no contiene ningún carácter; no debe confundirse con las cadena que contienen un "carácter nulo", que tienen una longitud positiva y cuyo valor booleano es "verdadero".

calabaza de parches

"Testigo" teórico que se transmite en la comunidad Perl para indicar quién es el integrador jefe en algún campo de desarrollo.

campo

Elemento individual de datos numéricos o de cadena que forma parte de una "cadena", un "registro" o una "línea" de mayor longitud. Los campos de ancho variable se suelen dividir mediante separadores (use la función split para extraer los campos), mientras que los campos de ancho fijo suelen estar en posiciones fijas (use unpack). Las variables de instancia también se denominan campos.

canal de salida seleccionado actualmente

El último "identificador de archivo" designado con select(IDENTIFICADOR DE ARCHIVO); si no se ha seleccionado ningún identificador de archivo, el canal de salida es "STDOUT".

canalización

Serie de procesos seguidos, vinculados mediante tuberías, cada una de las cuales pasa la secuencia de salida al siguiente proceso.

canónico

Reducido a una forma estándar para facilitar la comparación.

capturar

Escribir un "subpatrón" entre paréntesis en una "expresión regular" para almacenar la "subcadena" detectada como una "retrorreferencia" o un grupo de captura. (Las cadenas capturadas también se devuelven como una lista en "contexto de lista").

carácter

Entero pequeño que representa una unida de ortografía. Históricamente, los caracteres normalmente se almacenaban como enteros de ancho fijo (normalmente en un byte, o quizás en dos, en función del juego de caracteres); sin embargo, desde que surgió UTF-8, los caracteres se suelen almacenar en un número variable de bytes, en función del tamaño del entero que representa el carácter. Por lo general, Perl se encargará de esto automáticamente.

carácter de nueva línea

Carácter individual que representa el final de una línea, con un valor ASCII de 012 octal en Unix (015 en Mac) y que en las cadenas Perl se representa mediante \n. En equipos Windows que escriben archivos de texto y en determinados dispositivos físicos como terminales, la biblioteca de C traduce automáticamente el carácter de nueva línea a un avance de línea y un retorno de carro, pero normalmente no hay que hacer esta traducción.

carácter extraño

El de Larry o alguno de sus peculiares amigos. También hace referencia a los prefijos extraños que Perl usa como marcas de nombres en sus variables.

carácter nulo

Carácter con el valor ASCII cero. En C se usa para terminar cadenas, pero Perl permite que las cadenas contengan caracteres nulos.

carga automática

Carga que se realiza a petición. (También se denomina carga "perezosa"). Específicamente, se realiza la carga automática cuando se llama a una subrutina AUTOLOAD en nombre de una subrutina indefinida.

casilla

Ubicación de una "tabla hash" que puede contener varias entradas cuyas claves corresponde al mismo valor de hash según su función de hash. (Como política interna, no tiene que preocuparse de esto, a menos que le interesen los componentes internos o la política).

clase

Tipo definido por el usuario, implementado en Perl mediante un "paquete" que proporciona (de forma directa o mediante herencia) métodos (es decir, subrutinas) para controlar instancias de la clase (sus objetos). Vea también "herencia".

clase base

Tipo de "objeto" genérico; es decir, una "clase" de la que se derivan genéticamente otras clases más específicas mediante "herencia". Las personas que respetan a sus antepasados también la denominan "superclases".

clase de caracteres

Lista de caracteres entre corchetes que se usa en una "expresión regular" para indicar que cualquier carácter del conjunto puede ocurrir en un punto determinado. En un sentido informal, cualquier conjunto de caracteres predefinido que se use para ello.

clase derivada

Clase que define alguno de sus métodos en términos de una clase más genérica, denominada "clase base". Tenga en cuenta que las clases no se clasifican exclusivamente en clases base y clases derivadas: una clase puede funcionar a la vez como clase derivada y como clase base, lo que le da un toque de elegancia.

clase primaria

Vea "clase base".

claustro

Clúster usado para restringir el ámbito de un "modificador de expresión regular".

clausura

Subrutina anónima tal que, cuando se genera una referencia a ella en tiempo de ejecución, hace un seguimiento de las identidades de variables léxicas visibles externamente, incluso después de que dichas variables léxicas se salgan del "ámbito". Se llaman "clausuras" porque este tipo de comportamiento proporciona a los matemáticos una sensación de clausura, o cierre.

clave

Cadena de índice de un "hash" que se usa para buscar el "valor" asociado con esa clave.

cliente

En contexto de redes, es un "proceso" que inicia el contacto con un proceso de "servidor" para intercambiar datos y, tal vez, recibir un servicio.

clúster

Subpatrón escrito entre paréntesis que se usa para agrupar partes de una "expresión regular" en un solo "átomo".

CODE

La palabra devuelta por la función ref cuando se aplica a una referencia a una subrutina. Significa "código". Vea también "CV".

código de carácter

La posición de un carácter en la codificación de un conjunto de caracteres. El carácter NULL está casi con toda seguridad en la posición cero de todos los juegos de caracteres, por lo que su código de carácter es 0. El código de carácter para el carácter ESPACIO en el juego de caracteres ASCII es 0x20, o 32 decimal; en EBCDIC es 0x40, o 64 decimal. La función ord devuelve el código de carácter de un carácter.

Un "código de carácter" también se llama "posición de código" u "ordinal".

comando

En programación de "shell", la combinación sintáctica de un nombre de programa y sus argumentos. También se puede definir de forma más informal como cualquier cosa que, al escribirse en una shell (un intérprete de comandos), hace que esta inicie alguna acción. Según una definición todavía más informal, es una "instrucción" Perl que puede empezar con una "etiqueta" y terminar con un signo de punto y coma.

comentario

Observación que no afecta al significado del programa. En Perl se puede agregar un comentario mediante un carácter #, y los comentarios se pueden extender hasta el final de la línea.

compatibilidad con versiones anteriores

Significa que aún puede usar sus programas antiguos porque no hemos modificado ninguna de las características o errores en los que se basaban.

compatible con valores-izquierda

Que puede funcionar como "valor-izquierda".

compilador

En un sentido estricto, es un programa que procesa otro programa y devuelve un archivo que contiene el programa en un formato "más fácil de ejecutar", normalmente con instrucciones nativas de código máquina. Según esta definición, el intérprete perl no es un compilador, pero contiene una especie de compilador que procesa un programa para convertirlo a un formato más fácil de ejecutar (árboles de sintaxis) dentro del mismo proceso de perl para que el "intérprete" lo interprete a continuación. Sin embargo, existen módulos de extensión que hacen que Perl se parezca más a un compilador "real". Vea O.

concatenación

El proceso de colar la punta de algo con la cola de otra cosa del mismo tipo. Hace referencia a una operación similar con dos cadenas.

condicional

Algo "incierto". Vea "contexto booleano".

conexión

En telefonía, es el circuito eléctrico temporal que se establece entre el teléfono que hace la llamada y el que la recibe. En tecnología de redes, el mismo tipo de circuito temporal entre un "cliente" y un "servidor".

conjunto

Conjunto de módulos de "CPAN" relacionados. (También puede referirse a un grupo de modificadores de línea de comandos agrupados en un "grupo de modificadores").

construcción-construir

El sustantivo se refiere a un fragmento de sintaxis formado por piezas más pequeñas. El verbo transitivo significa crear un "objeto" con un "constructor".

constructor

Cualquier "método de clase", "método" de instancia o "subrutina" que forma, inicializa, bendice y devuelve un "objeto". A veces usamos este término de forma informal para referirnos a un "sistema de composición".

contaminado

Se dice de los datos provenientes de las manos grasientas de un usuario y que, por lo tanto, deben considerarse como datos inseguros para un programa en el que la seguridad es importante. Perl hace comprobaciones de seguridad si se ejecuta un programa "setuid" (o "setgid"), o si se usa el modificador -T.

contexto

El entorno (o los alrededores). El contexto proporcionado por el código del entorno determina el tipo de datos que se espera que una "expresión" concreta devuelva. Los tres tipos de contexto principales son "contexto de lista", "contexto escalar" y "contexto vacío". A veces, el contexto escalar se subdivide en "contexto booleano", "contexto numérico", "contexto de cadena" y "contexto vacío". También existe un contexto escalar "indiferente" (si siente curiosidad, se describe como el contexto "don't care" en el Capítulo 2, "Bits and Pieces", de la tercera edición de Programming Perl).

contexto booleano

Tipo especial de "contexto escalar" que se usa en expresiones condicionales para decidir si el "valor escalar" devuelto por una expresión es "verdadero" o "falso". Su evaluación no devuelve una cadena ni un número. Vea "contexto".

contexto de array

Expresión arcaica que se usa para designar algo cuyo nombre correcto es "contexto de lista".

contexto de cadena

Situación en la que el entorno de una expresión (es decir, el código que la llama) espera que devuelva una "cadena". Vea también "contexto" y "contexto numérico".

contexto de lista

Situación en la que el entorno de una "expresión" (el código que la llama) espera que esta devuelva una lista de valores, en lugar de un solo valor. Las funciones que consumen una "LISTA" de argumentos indican a esos argumentos que deben producir un valor de lista. Vea también "contexto".

contexto escalar

Situación en la que el entorno de una "expresión" (el código que la llama) espera que esta devuelva un solo "valor", en lugar de una "lista" de valores. Vea también "contexto" y "contexto de lista". A veces un contexto escalar impone restricciones adicionales al valor devuelto (vea "contexto de cadena" y "contexto numérico"). A veces hablamos de un "contexto booleano" en condicionales, pero esto no impone ninguna restricción adicional, puesto que cualquier valor escalar, tanto numérico como de tipo "cadena", ya es verdadero o falso.

contexto numérico

Situación en la que el entorno de una expresión (el código que la llama) espera que esta devuelva un número. Vea también "contexto" y "contexto de cadena".

contexto vacío

Forma de "contexto escalar" en el que no se espera que una "expresión" devuelva ningún "valor" y solo se evalúa por sus "efectos secundarios".

continuación

Tratar más de una "línea" física como una sola línea lógica. Para continuar las líneas de un archivo "Makefile" se coloca una barra diagonal inversa antes del "carácter de nueva línea". Los encabezados de correo definidos en RFC 822 se continúan colocando un espacio o una tabulación a continuación del carácter de nueva línea. En general, las líneas de código Perl no necesitan ningún tipo de marca de continuación, ya que el "espacio en blanco" (incluidos los caracteres de nueva línea) se ignora alegremente. Casi siempre.

controlador

Subrutina o "método" que Perl llama cuando el programa debe responder a algún evento interno, como una "señal", o un encuentro con un operador sujeto a "sobrecarga de operador". Vea también "devolución de llamada".

controlador de señales

Subrutina que, en lugar de contentarse con recibir las llamadas habituales, espera a que salga un rayo de la nada antes de dignarse a ejecutarse. En Perl, los rayos que salen de la nada se llaman señales, y se envían con la función predefinida kill. Vea "%SIG" in perlvar y "Señales" in perlipc.

control de ámbito dinámico

El control de ámbito dinámico se hace sobre un ámbito dinámico, de forma que las variables estén visibles en el resto del bloque en el que se usan por primera vez y en las subrutinas llamadas por el resto del bloque. Se puede cambiar temporalmente el valor de las variables de ámbito dinámico (y restaurarlo posteriormente) mediante un operador local. (Compárese con el "control de ámbito léxico"). En un sentido más informal, significa que una subrutina que esté en la mitad de una llamada a otra subrutina "contiene" esa subrutina en "tiempo de ejecución".

control de ámbito estático

Esto no existe. Vea "control de ámbito léxico".

control de ámbito léxico

Consultar en el Diccionario de Inglés Oxford con un microscopio. (También se conoce como "control de ámbito estático", ya que los diccionarios no se actualizan rápidamente). De forma similar, significa mirar variables almacenadas en un diccionario (espacio de nombres) privado para cada ámbito, de forma que solo son visibles desde su punto de declaración hasta el final del ámbito léxico en que se declararon. --Sinónimo. "control de ámbito estático". --Antónimo. "control de ámbito dinámico".

control de excepciones

La forma en que un programa responde a un error. En Perl, el mecanismo de control de excepciones es el operador eval.

conversión de tipo

Convertir datos de un tipo a otro. C lo permite. Perl no lo necesita. Ni lo desea.

conversión en cadena

El proceso de crear una representación en forma de "cadena" de un objeto abstracto.

CPAN

Comprehensive Perl Archive Network. (Vea "¿Qué módulos y extensiones están disponibles para Perl? ¿Qué es CPAN?" in perlfaq2).

cracker

Alguien capaz de burlar la seguridad de los sistemas informáticos. Un cracker puede ser un auténtico "hacker" o simplemente un "script kiddie".

cuantificador

Componente de una "expresión regular" que especifica cuántas veces puede ocurrir el "átomo" precedente.

CV

Definición de tipo de valor de código ("code value") interno que contiene una "subrutina". El tipo "CV" es una subclase de "SV".

D

datagrama

Paquete de datos, como un mensaje "UDP", que (desde el punto de vista de los programas implicados) se puede enviar de forma independiente a través de la red. (De hecho, todos los paquetes se envían de forma independiente en el nivel "IP", pero los protocolos de envío de secuencias como "TCP" ocultan esto a los programas).

datos de miembro

Vea "variable de instancia".

DBM

Significa "Data Base Management" (administración de base de datos), y es un conjunto de rutinas que emulan un "array asociativo" mediante archivos de disco. Las rutinas usan un esquema de hash dinámico para localizar cualquier entrada con solo dos accesos al disco. Los archivos DBM permiten que un programa Perl mantenga un "hash" persistente entre varias invocaciones. Puede atar las variables de hash a varias implementaciones de DBM (vea AnyDBM_File y DB_File).

declaración

Aserción que declara que algo existe y que también puede describir cómo es, sin especificar cómo o dónde se va a usar. Una declaración es como la parte de una receta que dice "dos tazas de harina, un huevo grande, cuatro o cinco renacuajos...". Para ver una definición de su opuesto, vea "instrucción". Tenga en cuenta que algunas declaraciones también funcionan como instrucciones. Las declaraciones de subrutina también actúan como definiciones si se proporciona el cuerpo de la subrutina.

decrementar

Restar un valor de una variable, como en "decrementar $x" (significa restar 1 de su valor) o "decrementar $x en 3 unidades".

definido

Que tiene un significado. Perl piensa que algunas de las cosas que las personas intentan hacer no tienen sentido, como usar variables a las que nunca se ha asignado un "valor" o realizar determinadas operaciones con datos que no existen. Por ejemplo, si intenta leer datos cuando ya se ha acabado el archivo, Perl devolverá un valor indefinido. Vea también "falso" y "defined" in perlfunc.

delimitador

Carácter o "cadena" que establece límites en un objeto de texto de tamaño arbitrario; no debe confundirse con un "separador" o un "terminador". "Delimitar" significa simplemente "rodear" o "envolver" (lo que hacen estos paréntesis).

depurador simbólico

Programa que permite recorrer paso a paso la ejecución del programa, deteniéndose en distintos puntos para ver si se ha producido algún error y, en caso afirmativo, cuál. El término "simbólico" simplemente quiere decir que puede comunicarse con el depurador mediante los mismos símbolos que usó para escribir el programa.

descriptor

Vea "descriptor de archivo".

descriptor de archivo

El número que el "sistema operativo" usa para controlar a qué "archivo" abierto se refiere. Perl oculta el descriptor de archivo dentro de una secuencia de "E/S estándar" y asocia la secuencia a un "identificador de archivo".

desencadenador

Evento que hace que se ejecute un "controlador".

desplazamiento

El número de elementos que debe saltar al moverse desde el principio de una cadena o un array a una posición específica. El desplazamiento mínimo es cero, no uno, ya que no hay que saltar nada para llegar al primer elemento.

desplazamiento a la derecha

Desplazamiento de bits que divide un número por alguna potencia de 2.

desplazamiento a la izquierda

Desplazamiento de bits que multiplica un número por alguna potencia de 2.

desplazamiento de bits

Movimiento de bits hacia la izquierda o la derecha en una palabra de procesador, lo que tiene el efecto de multiplicar o dividir por una potencia de 2.

desreferenciar

Término informático sofisticado que significa "seguir una "referencia" hasta aquello a lo que apunta". El prefijo "des" hace referencia al hecho de que al hacer esto se elimina un nivel de "direccionamiento indirecto".

destrucción global

La "recolección de elementos no utilizados" de variables globales (y la ejecución de cualquier destructor de objetos asociado) que tiene lugar cuando se cierra un "intérprete" de Perl. La destrucción global no debe confundirse con el Apocalipsis, salvo cuando se refiera a eso explícitamente.

destructor

Método especial que se llama cuando un "objeto" desea destruirse. En realidad, el método DESTROY de un programa Perl no se encarga de la destrucción; Perl solo desencadena el método en caso de que la "clase" desee realizar alguna limpieza asociada.

destruir

Anular la asignación de memoria de un "referente" (antes se desencadena su método DESTROY, si lo tuviera).

detección

Vea "detección de patrones".

detección de patrones

Comparación realizada de diversas maneras de un patrón (generalmente una "expresión regular") con una cadena para intentar detectarlo. Se suele usar para seleccionar fragmentos interesantes de un archivo.

detección progresiva

Detección de patrones que reanuda la detección desde el punto en que la dejó.

devolución de llamada

Controlador que se registra con alguna parte del programa para que otra parte del programa lo desencadene cuando se produzca algún evento de interés.

difundir

Enviar un "datagrama" a varios destinos simultáneamente.

direccionamiento indirecto

Si algo en un programa no es el valor que se busca, sino una indicación de dónde se puede encontrar el valor, se habla de direccionamiento indirecto. Esto se puede hacer con referencias simbólicas o con referencias estrictas.

dirección de red

El atributo más importante de un socket (equivalente al número de un teléfono). Generalmente una dirección IP. Vea también "puerto-adaptar".

directiva

Directiva "pod". Vea perlpod.

directorio

Archivo especial que contiene otros archivos. Algunos sistemas operativos llaman a estos archivos "carpetas", "cajones" o "catálogos".

directorio de trabajo

El "directorio" actual, que "sistema operativo" usa para interpretar las rutas de acceso relativas. El sistema operativo sabe cuál es el directorio actual porque se lo ha comunicado mediante la función chdir o porque empezó en el lugar en el que nació el "proceso" primario.

directorio de trabajo actual

Vea "directorio de trabajo".

directorio principal

El directorio en el que se encuentra cuando inicia sesión. En un sistema Unix, el inicio de sesión suele colocar el nombre en $ENV{HOME} o en $ENV{LOGDIR}, pero también puede encontrarlo con (getpwuid($<))[7]. (En algunas plataformas no existe el concepto de directorio principal).

disponible gratuitamente

Significa que no tiene que pagar a nadie para obtenerlo, pero los derechos de autor pueden pertenecer a alguien (como Larry).

dispositivo

Artilugio de hardware prodigioso (como un disco, una unidad de cinta, un módem, una palanca de control o un ratón) conectado a su equipo que el "sistema operativo" trata de hacer pasar por "archivo" (o un conjunto de archivos). En Unix, estos archivos simulados se encuentran en el directorio /dev.

distribución

Versión estándar empaquetada de un sistema de software. Su uso predeterminado implica la inclusión del código fuente. Si no es así, se dice que la distribución "solo incluye binarios".

distribuir

Enviar algo a su destino correcto. Normalmente se usa como metáfora para indicar una transferencia del control del programa a un destino seleccionado algorítmicamente, normalmente buscando en una tabla de referencias de función o, en el caso de métodos de objeto, recorriendo el árbol de herencia en busca de la definición más específica del método.

división automática

Operación que divide una cadena automáticamente, como el "modificador" -a cuando se ejecuta con -p or -n para emular a "awk". (Vea también el módulo AutoSplit, que no tiene nada que ver con el modificador -a, pero está muy relacionado con la carga automática).

documento incrustado

Del inglés here document. Se llama así por una construcción similar de las shells que simula que las líneas que siguen al "comando", hasta una cadena de terminación, son un "archivo" independiente que se debe pasar al comando. En Perl no es más que una forma sofisticada de escribir algo entre comillas.

dominio público

Se dice de algo que no es propiedad de nadie. Perl está protegido por derechos de autor y, por consiguiente, no es de dominio público, simplemente está "disponible gratuitamente" y es "redistribuible gratuitamente".

dweomer

Un encantamiento, una ilusión, un fantasma o juegos malabares. Se dice cuando los efectos "dwimmer" mágicos de Perl no ofrecen el resultado esperado, sino que parecen el producto de un sortilegio arcano de dweomer, brujería o un prodigio. [del inglés arcaico]

dwimmer

DWIM es el acrónimo de "Do What I Mean" (haz lo que te ordeno), el principio de que algo debe hacer lo que se le ordena sin rechistar. Se dice que un fragmento de código con esta propiedad es un "dwimmer". Esto puede requerir una gran cantidad de magia entre bastidores, en cuyo caso (si no permanece oculto entre bastidores) se llamará "dweomer".

E

ecléctico

Derivado de muchas fuentes. Hay quien piense que de demasiadas.

efectos secundarios

Algo adicional que sucede cuando se evalúa una "expresión". Actualmente se puede referir casi a cualquier cosa. Por ejemplo, la evaluación de una instrucción de asignación sencilla suele tener el "efecto secundario" de asignar un valor a una variable. (Y usted que pensaba que su intención principal era asignar la variable...) Del mismo modo, la asignación de un valor a la variable especial $| ($AUTOFLUSH) tiene el efecto secundario de forzar un volcado en cada operación write o print en el identificador de archivo seleccionado actualmente.

ejecutar

Ejecutar un programa o una "subrutina". (No tiene nada que ver con la función predefinida kill, a menos que intente ejecutar un "controlador de señales").

elemento

Componente básico. Cuando se refiere a un "array", es uno de los elementos que forman el array.

elemento predefinido

Función predefinida del lenguaje. Incluso cuando se oculta sobrescribiendo, siempre se puede obtener una función predefinida usando su "nombre completo" (completándolo con el seudopaquete CORE::).

encapsulación

El velo de abstracción que separa la "interfaz" de la "implementación" (tanto si se fuerza como si no), que ordena que todo el acceso al estado de un "objeto" sea solo a través de métodos.

encapsulador

Programa o subrutina que ejecuta automáticamente otro programa o subrutina, modificando parte de la entrada o la salida para adaptar mejor el resultado a sus necesidades.

endian

Vea "little-endian" y "big-endian".

enfoque de caja de herramientas

La noción de que basta un conjunto completo de herramientas sencillas que funcionan bien juntas para construir todo lo que se desee. Lo cual es fantástico si lo que se pretende es montar un triciclo, pero si vamos a acometer una empresa faraónica necesitaremos nuestro propio taller de maquinaria para fabricar herramientas especiales. Perl es una especie de taller de maquinaria.

enlazar

Asignar una "dirección de red" específica a un "socket".

en passant

Se dice de la acción de modificar un "valor" mientras se copia. [Del francés, significa "al paso", como en la exótica maniobra de captura de peón del ajedrez].

entero

Número sin parte fraccionaria (decimal). Es un número que sirve para contar, como 1, 2, 3, etc. También se incluyen el 0 y los números negativos correspondientes.

entorno

El conjunto colectivo de variables de entorno que el "proceso" hereda del proceso principal. Se puede acceder a estas variables a través de %ENV.

entrada estándar

Secuencia de entrada predeterminada del programa, que no debe preocuparse del origen de los datos, si es posible. En un programa Perl se representa mediante el "identificador de archivo" "STDIN".

EOF

Final del archivo. A veces se usa metafóricamente como la cadena de terminación de un "documento incrustado".

errno

El número de error devuelto por una "llamada de sistema" si no tiene éxito. Perl usa la variable $! (o bien $OS_ERROR, si usa el módulo English) para hacer referencia a este error.

error

Vea "excepción" o "error irrecuperable".

error estándar

La "secuencia" de salida estándar para comentarios desagradables que no corresponden a la "salida estándar". En un programa Perl se representa mediante el "identificador de archivo" "STDERR". Puede usar esta secuencia explícitamente, pero las funciones predefinidas die y warn escriben en la secuencia de error estándar automáticamente.

error irrecuperable

Una "excepción" no capturada que hace que el "proceso" finalice tras imprimir un mensaje en la secuencia de "error estándar". Los errores que se producen dentro de una función eval no son irrecuperables. La función eval termina después de colocar el mensaje de excepción en la variable $@ ($EVAL_ERROR). Puede intentar provocar un error irrecuperable con el operador die (lo que se conoce como desencadenar o provocar una excepción), pero esto puede ser capturado mediante un operador eval aplicado dinámicamente. Si no se captura, la llamada a die se convierte en un error irrecuperable.

E/S

Entrada desde (o salida a) un "archivo" o "dispositivo".

escalar

Valor singular, simple; un número, una "cadena" o una "referencia".

E/S estándar

Biblioteca de C estándar para entrada y salida con almacenamiento en búfer en el "sistema operativo". (La palabra "estándar" de E/S estándar solo tiene una relación tangencial con el estándar de entrada y salida). En general, Perl se basa en la implementación de E/S estándar proporcionada por un sistema operativo determinado, por lo que las características de almacenamiento en búfer de un programa Perl en una máquina pueden no coincidir exactamente con las de otra máquina. Normalmente, esto solo influye en la eficiencia, no en la semántica. Si el paquete de E/S estándar realiza almacenamiento en búfer de bloques y desea que vuelque el búfer más a menudo, debe establecer la variable $| en un valor verdadero.

espacio de nombres

Dominio de nombres. Evita tener que preocuparse de si los nombres de un dominio se usan en el otro. Vea "paquete".

espacio en blanco

Carácter que mueve el cursor pero que no imprime nada en pantalla. Normalmente se refiere espacios, tabulaciones, avances de línea, retornos de carro o avances de página.

estado

El "valor" devuelto al "proceso" primario cuando finaliza uno de sus procesos derivados. Este valor se coloca en la variable especial $?. Los ocho bits superiores son el estado de salida del proceso finalizado, mientras que los ocho bits inferiores identifican la señal (si existe) que hizo que finalizara el proceso. En sistemas Unix, este valor de estado es el mismo que la palabra de estado devuelta por wait(2). Vea "system" in perlfunc.

estado de salida

Vea "estado".

estándar

Incluido en la distribución de Perl oficial como un módulo estándar, una herramienta estándar o una "página de manual" de Perl estándar.

estático

Que varía lentamente en comparación con lo demás. (Por desgracia, todo es relativamente estable en comparación con otra cosa, salvo algunas partículas elementales, y en este caso tampoco tenemos la seguridad). En un contexto informático, en el que se supone que las cosas cambian rápidamente, el adjetivo "estático" tiene una connotación peyorativa, que indica que la "variable", "subrutina" o "método" es ligeramente disfuncional. En la cultura Perl es de buena educación evitar el uso de esta palabra.

estructura

Vea "estructura de datos".

estructura de datos

Manera en que diversos elementos de datos están relacionados entre sí y forma que adquieren cuando se colocan todos juntos (por ejemplo, en una tabla rectangular o en un árbol de forma triangular).

estructura stat

Área interna especial en la que Perl mantiene información sobre el último "archivo" del que se solicitó información.

etiqueta

Nombre que se asigna a una "instrucción" para poder hacer referencia a la misma en otro punto del programa.

etiqueta de bucle

Tipo de clave o nombre asociado a un bucle (o una montaña rusa) que permite especificar en instrucciones de control de bucle el bucle que se desea controlar.

excepción

Término pretencioso para designar un error. Vea "error irrecuperable".

exec

Abandonar el programa del "proceso" actual y reemplazarlo por otro sin salir del proceso ni renunciar a los recursos disponibles (salvo la imagen de memoria antigua).

exportar

Hacer que los símbolos de un "módulo" estén disponibles para "importar" en otros módulos.

expresión

Todo lo que sea válido en un punto del programa que requiera un "valor". Normalmente consta de literales, variables, operadores, funciones y llamadas a subrutinas, no necesariamente en ese orden.

expresión de inspección

Expresión que, al cambiar de valor, activa un punto de interrupción en el depurador de Perl.

expresión regular

Una sola entidad con diversas interpretaciones, como un elefante. Para un informático, es una gramática de un minilenguaje en el que algunas cadenas son válidas y otras no. Para las personas normales, es un patrón que se puede usar para encontrar lo que se busca cuando varía según el caso. Las expresiones regulares de Perl no son regulares en un sentido teórico, pero su uso regular produce muy buenos resultados. Ejemplo de expresión regular: /Ast.*ores/. Esto detectará cadenas como "Asturias patria querida, Asturias de mis amores" o "Astuto programadores". Vea perlre.

extensión

Módulo Perl que también usa código C o C++ compilado. De manera más general, cualquier opción experimental que se pueda compilar en Perl, como la compatibilidad con múltiples hilos de ejecución.

F

falso

En Perl, cualquier valor equivalente a "" o "0", si se evalúa en contexto de cadena. Puesto que los valores indefinidos se evalúan como "", todos los valores indefinidos son falsos (incluida la "lista nula"), pero no todos los valores falsos son indefinidos.

fase de compilación

Cualquier momento antes de que el intérprete de Perl inicie la ejecución del programa principal. Vea también "fase de ejecución". Durante la fase de compilación la mayor parte del tiempo se consume en "tiempo de compilación", pero también puede usarse en "tiempo de ejecución" cuando se evalúan los bloques BEGIN, las declaraciones use o subexpresiones constantes. El código de inicio e importación de cualquier declaración use también se ejecuta durante la fase de compilación.

fase de ejecución

Cualquier momento posterior al comienzo de la ejecución del programa principal. Vea también "fase de compilación". La fase de ejecución se dedica en su mayor parte al "tiempo de ejecución", pero también puede dedicarse a "tiempo de compilación" si se ejecutan los operadores require, do ARCHIVO o eval CADENA, o cuando una sustitución usa el modificador /ee.

FIFO

First In, First Out (el primero que entra es el primero que sale). Vea también "LIFO". También es un apodo de "tubería con nombre".

fileglob

Detección con "comodines" en nombres de archivos. Vea la función glob.

filtro

Programa que consume una "secuencia" de entrada y la transforma en una secuencia de salida.

filtro de código fuente

Tipo de "módulo" especial que hace un "preprocesamiento" del script justo antes de que llegue al "tokenizador".

FMTEYEWTK

Far More Than Everything You Ever Wanted To Know (Mucho más que todo lo que siempre quisiste saber). Un tratado exhaustivo sobre un tema que no da para mucho, como unas súper-"P+F". Pregunta a Tom si quieres saber mucho más.

fork

Mecanismo que crea un "proceso" derivado idéntico al proceso principal en el momento de su creación, al menos hasta que tenga sus propias ideas. Es un hilo de ejecución con memoria protegida.

formato

Especificación de cuántos espacios, dígitos y demás hay que poner en algún lugar para que el resultado impreso sea atractivo.

freeware

Históricamente, cualquier software que se regala, especialmente si también se incluye el código fuente. Ahora se suele llamar software open source. Recientemente se ha puesto de moda usar este término en contradicción con "software open source", para referirse únicamente al software libre publicado con la licencia GPL (General Public License) de la Free Software Foundation, pero es difícil justificar esto desde un punto de vista etimológico.

función

En matemáticas es una correspondencia entre los distintos valores del conjunto de valores de entrada y un valor de salida específico. En programación, es una "subrutina" o un "operador" que devuelve un "valor". Puede tener o no valores de entrada (denominados argumentos).

G

generador de código

Sistema que escribe código automáticamente en un lenguaje de bajo nivel; por ejemplo, el código que implementa el backend de un compilador. Vea "generador de programas".

generador de programas

Sistema que usa un algoritmo para escribir código automáticamente en un lenguaje de alto nivel. Vea también "generador de código".

GID

Group ID (identificador de grupo). En Unix es el identificador de grupo numérico que el "sistema operativo" usa para identificarle a usted y a los miembros de su "grupo".

glob

Estrictamente, el carácter * de la shell, que detectará un "glob" de caracteres cuando se intenta generar una lista de nombres de archivos. En un sentido informal, el acto de usar globs y símbolos similares para detectar patrones. Vea también "fileglob" y "typeglob".

global

Algo que se puede ver en cualquier lugar, generalmente variables y subrutinas que están visibles en cualquier punto del programa. En Perl, solo algunas variables especiales son realmente globales; la mayoría de las variables (y todas las subrutinas) solo existen en el "paquete" actual. Las variables globales se pueden declarar con our. Vea "our" in perlfunc.

granularidad

El tamaño de los elementos con los que se trabaja (de forma abstracta).

grep

Originalmente, el antiguo comando de editor Unix "Globally search for a Regular Expression and Print it" (hacer una búsqueda global de una expresión regular e imprimir el resultado). En la actualidad se usa en el sentido general de cualquier tipo de búsqueda, especialmente las búsquedas de texto. Perl incluye una función grep predefinida que permite buscar en una lista los elementos que cumplan algún criterio especificado, a diferencia del programa grep(1), que busca líneas que coincidan con una "expresión regular" en uno o varios archivos.

grupo

Conjunto de usuarios del que usted forma parte. En algunos sistemas operativos (como Unix) puede asignar determinados permisos de acceso a archivos a otros miembros de su grupo.

grupo de modificadores

Combinación de varios modificadores de línea de comandos (p. ej., -a -b -c) en un solo modificador (p. ej., -abc). Cualquier modificador que tenga un "argumento" adicional deberá ser el último modificador del grupo.

GV

Definición de tipo de "glob value" (valor de glob) interno que contiene un "typeglob". El tipo "GV" es una subclase de "SV".

H

hacker

Persona que se caracteriza por una persistencia brillante para resolver problemas técnicos, ya sean de golf, de lucha contra los orcos o de programación. Hacker es un término neutro, desde un punto de vista ético. No se deben confundir los buenos hackers con los malvados crackers ni con los limitados script kiddies. Si los confunde, supondremos que usted es malvado o limitado.

hash

Asociación de pares "clave"-"valor" sin ordenar, almacenados de forma que se pueda usar fácilmente una "clave" de tipo cadena para buscar el "valor" de datos asociado. Este glosario es como un hash, en el que una palabra definida es la clave y su definición el valor. A veces se usa el septisílabo "array asociativo" para designar un hash. Esto es en sí una buena razón para preferir el nombre "hash". Opcionalmente, un hash se puede restringir a un conjunto fijo de claves.

hash restringido

Hash con un conjunto cerrado de claves permitidas. Vea Hash::Util.

herencia

Lo que se obtiene de los antepasados, ya sea por vía genética o de otro modo. Si usted fuera una "clase", sus antepasados serían clases base y sus descendientes serían clases derivadas. Vea "herencia simple" y "herencia múltiple".

herencia múltiple

Las características que heredamos de nuestra madre y nuestro padre, combinadas de forma impredecible. (Vea también "herencia" y "herencia simple".) En lenguajes informáticos (incluido Perl), la noción de que una clase determinada puede tener varios antepasados directos, o clases base.

herencia simple

Las características que heredó de su madre, si esta le dijo que no tiene padre. (Vea también "herencia" y "herencia múltiple"). En lenguajes informáticos, la noción de que las clases se reproducen asexualmente, de forma que una clase determinada solo puede tener un antecesor directo (una "clase base"). Perl no impone esta restricción, pero si lo desea puede programar Perl de esta manera.

hexadecimal

Número en base 16 (se suele abreviar como "hex"). Los dígitos 10 a 16 se suelen representar mediante las letras entre a y f. En Perl, las constantes hexadecimales empiezan por 0x. Vea también "hex" in perlfunc.

hilo de ejecución

Igual que un proceso generado mediante fork, pero sin la protección de memoria que conlleva el uso de "fork". Un hilo de ejecución es más ligero que un proceso completo, en el sentido de que un proceso puede tener varios hilos de ejecución compitiendo en el mismo espacio de memoria del proceso, a menos que se tomen las medidas adecuadas para proteger a unos hilos de otros. Vea threads.

host

El equipo en el que reside un programa (u otros datos).

HV

Abreviatura de la definición de tipo "hash value" (valor de hash), que contiene la representación interna en Perl de un hash. El tipo "HV" es una subclase de "SV".

I

identificador

Nombre válido para prácticamente cualquier cosa que pueda interesar a un programa. Muchos lenguajes (Perl incluido) permiten que los identificadores empiecen por una letra y contengan letras y dígitos. Perl también admite el guión bajo como carácter válido. (Es posible usar nombres más complicados en Perl, como los nombres completos).

identificador de archivo

Identificador (no necesariamente relacionado con el nombre real del archivo) que representa una instancia concreta de un archivo abierto hasta que lo cierre. Si va a abrir y cerrar varios archivos seguidos, puede usar el mismo identificador para abrir los distintos archivos; no tiene que escribir código de apertura para cada archivo.

identificador de archivo indirecto

Expresión que, al evaluarse, devuelve algo que se puede usar como "identificador de archivo": una "cadena" (nombre de identificador de archivo), un "typeglob", una "referencia" de typeglob, o un objeto "IO" de bajo nivel.

identificador de directorio

Nombre que representa una instancia concreta de un directorio abierto para lectura, hasta que se cierra dicho directorio. Vea la función opendir.

impaciencia

La rabia que se siente ante los ataques de pereza del equipo. Esta cualidad le permite escribir programas que no solo reaccionarán a sus necesidades, sino que se anticiparán a ellas. O que al menos tratarán de hacerlo. Es por ello la segunda gran virtud de un programador. Vea también "pereza" y "soberbia".

implementación

La manera en que un fragmento de código hace su trabajo. Los usuarios del código no deben contar con que se mantengan los detalles de la implementación, a menos que formen parte de la "interfaz" publicada.

importar

Obtener acceso a símbolos exportados por otro módulo. Vea "use" in perlfunc.

incrementar

Aumentar el valor de algo en una unidad (o en cualquier otra cantidad especificada).

incremento mágico

Operador de incremento que sabe cómo recorrer los caracteres alfabéticos y los números.

incrustar

Insertar algo dentro de otra cosa, especialmente cuando se puede considerar sorprendente: "¡He incrustado un intérprete de Perl completo en mi editor!".

indexar

Antiguamente era el acto de buscar una "clave" en un índice real (como un listín telefónico), pero actualmente no es más que el acto de usar cualquier tipo de clave o posición para buscar el "valor" correspondiente, aunque no exista un índice. Las cosas han degenerado hasta el punto de que la función index de Perl simplemente localiza la posición (el índice) de una cadena en otra.

infijo

Operador que se usa entre sus operandos, como el de multiplicación en 24 * 7.

inspección hacia adelante

Aserción que mira a la cadena situada a la derecha de la posición de detección actual.

inspección hacia atrás

Aserción que mira a la cadena situada a la izquierda de la posición de detección actual.

instancia

Abreviatura de "instancia de una clase", es decir, un "objeto" de esa "clase".

instrucción

Comando que indica al equipo qué debe hacer a continuación, como un paso de una receta: "Añadir mermelada y batir hasta obtener una mezcla homogénea". Una instrucción se distingue de una "declaración" en que esta última no ordena al equipo que haga nada; simplemente informa de algo.

instrucción colgante

Instrucción individual suelta, sin llaves, que cuelga de un condicional if o while. C las permite. Perl no.

instrucción de control de bucle

Cualquier instrucción del cuerpo de un bucle que puede hacer que el bucle se detenga prematuramente u omita una "iteración". En general, no debe probar esto en una montaña rusa.

instrucción switch

Técnica de programación que permite evaluar una "expresión" y, a continuación, en función del valor de la expresión, bifurcar la ejecución al fragmento de código correspondiente a ese valor. También se denominada "estructura case", por una construcción similar del lenguaje Pascal. Vea "BLOQUES básicos" in perlsyn.

interfaz

Los servicios que un componente de código debe mantener para siempre, a diferencia de su "implementación", que se puede modificar siempre que sea necesario.

interpolación

Inserción de un escalar o un valor de lista dentro de otro valor, de forma que parezca que siempre ha estado allí. En Perl, la interpolación de variables se realiza en cadenas o patrones escritos entre comillas dobles, y la interpolación de listas se realiza al crear la lista de valores que se van a pasar a un operador de lista o a otra construcción similar que consuma una "LISTA".

interpolación de variables

La "interpolación" de una variable escalar o de array en una cadena.

intérprete

En un sentido estricto, es un programa que lee otro programa y hace lo que este segundo programa dice sin convertirlo en un programa distinto, que es lo que haría un "compilador". Según esta definición, Perl no es un intérprete, ya que contiene una especie de compilador que convierte un programa a un formato más fácil de ejecutar (árboles de sintaxis) dentro del mismo proceso de perl, para que el sistema de "tiempo de ejecución" de Perl lo interprete.

invocación

El acto de llamar a una deidad o un demonio, programa, método, subrutina o función para que haga lo que se supone que debe hacer. Normalmente "llamamos" a las subrutinas, pero a los métodos los "invocamos" porque suena mejor.

invocante

El agente en cuyo nombre se invoca un "método". En un método de "clase", el invocante es un nombre de paquete. En un método de "instancia", el invocante es una referencia a objeto.

IO

Objeto de E/S interno. También puede significar "objeto indirecto".

IP

Protocolo de Internet (o Propiedad intelectual).

IPC

Comunicación entre procesos.

is-a

es-un. Relación entre dos objetos en la que se considera que un objeto es una versión más específica del otro, que es un objeto genérico: "Un camello es un mamífero". Como en realidad el objeto genérico sólo existe en un sentido platónico, normalmente agregamos un pequeña abstracción a la noción de objetos, y pensamos en la relación como una relación entre una "clase base" genérica y una "clase derivada" específica. Sorprendentemente, las clases platónicas no siempre tienen relaciones platónicas (vea "herencia").

iteración

Hacer algo repetidamente.

iterador

Artilugio especial para programación que hace un seguimiento de dónde se está en algo que se intenta recorrer repetidamente. El bucle foreach de Perl contiene un iterador; el hash también (es lo que permite usar la función each).

IV

El entero cuatro; no debe confundirse con seis, el editor favorito de Tom. IV también puede ser un valor entero (Integer Value) interno, del tipo que un "escalar" puede contener. No debe confundirse con un "NV".

J

JAPH

"Just Another Perl Hacker", un fragmento de código Perl que refleja astucia, aunque de forma críptica, y que cuando se ejecuta devuelve la cadena anterior. Se suele usar para ilustrar una característica determinada de Perl, y se viene usando de forma continuada en las firmas de Usenix, como si de un concurso de Perl ofuscado se tratara.

L

la más larga empezando por la izquierda

La preferencia del motor de expresiones regulares por detectar la primera aparición de un "patrón" empezando por la izquierda, y una vez obtenida una posición de coincidencia, la preferencia por la coincidencia más larga (se supone que se usa un cuantificador "avaricioso"). En perlre encontrará mucha más información sobre este tema.

legible

Si se refiere a un archivo, quiere decir que tiene establecido el bit de permiso apropiado para permitir el acceso al archivo. Si se refiere a un programa informático, indica que está lo suficientemente bien escrito para que otros puedan entender cómo funciona.

lenguaje pegamento

Lenguaje como Perl, que es muy útil para conectar cosas que en principio no se usan juntas.

lexema

Nombre elegante de "token".

LIFO

Last In, First Out (el último que entra es el primero que sale). Vea también "FIFO". LIFO también se suele llamar "pila".

línea

En Unix, una serie de cero o más caracteres que no son de nueva línea, culminados con un "carácter de nueva línea". En equipos que no usan Unix esto se emula mediante la biblioteca de C, aunque el "sistema operativo" subyacente tenga ideas distintas.

lista

Conjunto ordenado de valores escalares.

LISTA

Construcción sintáctica que representa una lista de expresiones separadas por comas y que al evaluarse produce un "valor de lista". Cada "expresión" de una "LISTA" se evalúa en "contexto de lista" y se interpola en el valor de lista.

lista nula

Valor sin valores que en Perl se representa mediante (). En realidad no es una "LISTA", sino una expresión que devuelve undef en "contexto escalar" y un "valor de lista" con cero elementos en "contexto de lista".

lista vacía

Vea "lista nula".

literal

Token de un lenguaje de programación, como un número o una "cadena", que proporciona un "valor" real, en lugar de simplemente representar valores posibles, como una "variable".

literal escalar

Número o "cadena" entre comillas; un "valor" real en el texto del programa, en contraste con una "variable".

little-endian

Según Swift, alguien que empieza a comer un huevo por su extremo menos ancho (Nota del traductor: juego de palabras; en inglés "end" significa extremo). También se usa para designar a los equipos que almacenan el "byte" menos significativo de una palabra en una dirección de byte más baja que la del byte más significativo. Estos equipos se suelen considerar superiores a los equipos big-endian. Vea también "big-endian".

llamada de sistema

Llamada de "función" dirigida directamente al "sistema operativo". Muchas de las subrutinas y funciones importantes que se usan no son llamadas de sistema directas, sino que se crean una o varias capas por encima del nivel de llamada de sistema. En general, los programadores que usan Perl no tienen que preocuparse por esta distinción. Sin embargo, si sabe qué funciones de Perl son realmente llamadas de sistema, puede predecir cuál de estas establecerá el valor de la variable $! ($ERRNO) cuando se produzca un error. Por desgracia, los programadores principiantes suelen emplear de forma confusa el término "llamada de sistema" para referirse a lo que sucede cuando se llama a la función system de Perl, que es algo que en realidad requiere realizar muchas llamadas de sistema. Para evitar confusiones, casi siempre diremos "llamada de sistema" para referirnos a algo que se puede llamar indirectamente mediante la función syscall de Perl; nunca lo usaremos para algo que se llame a través de la función system de Perl.

llamada por referencia

Mecanismo para pasar "argumentos" en el que los "argumentos formales" hacen referencia directa a los "argumentos reales" y la "subrutina" puede cambiar los argumentos reales modificando los argumentos formales. Es decir, el argumento formal es un "alias" del argumento real. Vea también "llamada por valor".

llamada por valor

Mecanismo para pasar "argumentos" en el que los "argumentos formales" hacen referencia a los "argumentos reales" y la "subrutina" no puede cambiar los argumentos reales modificando los argumentos formales. Vea también "llamada por referencia".

local

No tiene el mismo significado en todas partes. Una variable global en Perl se puede hacer local dentro de un ámbito dinámico a través del operador local.

M

magia

Desde un punto de vista técnico, cualquier semántica adicional asociada a una variable, como $!, $0, %ENV o %SIG, o a cualquier variable atada. Cuando se hacen trampas con estas variables, suceden cosas mágicas.

Makefile

Archivo que controla la compilación de un programa. En general, los programas Perl no necesitan un archivo "Makefile" porque el compilador de Perl destaca por su autocontrol.

man

Programa de Unix que muestra la documentación en pantalla (páginas de manual).

mapa de tipos

Descripción de cómo pueden transformarse los tipos de C en tipos de Perl y viceversa en un módulo de "extensión" escrito en "XS".

marca

Normalmente evitamos usar este término porque tiene muchos significados posibles. Puede ser un "modificador" de línea de comandos que no consume ningún argumento (como las marcas -n y -p de perl) o, de forma menos frecuente, un indicador de un solo bit (como las marcas O_CREAT y O_EXCL que se usan en sysopen).

memoria

Siempre hace referencia a la memoria principal, no al disco. Algo que enturbia este asunto es el hecho de que el equipo puede tener implementada memoria "virtual"; es decir, simulará que dispone de más memoria de la que realmente tiene, y usará el espacio en disco para almacenar bits inactivos. Esto puede hacer que parezca que se dispone de más memoria de la que realmente hay, pero no sustituye la memoria real. Lo mejor que se puede decir de la memoria virtual es que, cuando se agota la memoria real, hace que el rendimiento se degrade de forma gradual, no súbitamente. Pero el programa también puede finalizar cuando se agota la memoria virtual, si no se ha liquidado el disco antes.

memoria compartida

Parte de la "memoria" accesible para dos procesos distintos que, de otro modo, no podrían ver la memoria del otro.

metacarácter

Carácter que no debe procesarse como un carácter normal. Los caracteres que deben tratarse de forma especial como metacaracteres varían en gran medida de un contexto a otro. Su "shell" tendrá algunos metacaracteres, las cadenas de Perl entre comillas tendrán otros metacaracteres y los patrones de "expresión regular" tendrán todos los metacaracteres de comillas dobles y otros de su propia cosecha.

metasímbolo

Algo que podríamos llamar "metacarácter" si no fuera porque está formado por una secuencia de varios caracteres. En general, el primer carácter de la secuencia debe ser un auténtico metacarácter para que los demás caracteres del metasímbolo le sigan en sus fechorías.

método

Tipo de acción que un "objeto" puede realizar si se le ordena. Vea perlobj.

método de clase

Método cuyo "invocante" es un nombre de "paquete", no una referencia a "objeto". Un método asociado a la clase como un todo.

método estático

Esto no existe. Vea "método de clase".

métodos de acceso

Método que se usa para actualizar o inspeccionar de forma indirecta el estado de un "objeto" (sus variables de instancia).

minimalismo

La creencia de que "lo pequeño es bello". Paradójicamente, si se dice algo en un lenguaje pequeño, acaba por ser grande; y si se dice en un lenguaje grande, acaba por ser pequeño. No hay quien lo entienda...

modificador

Vea "modificador de instrucción", "modificador de expresión regular" y "modificador de valor-izquierda", no necesariamente en ese orden.

modificador de expresión regular

Opción de un patrón o sustitución, como /i, que hace que no se distingan mayúsculas de minúsculas en el patrón. Vea también "claustro".

modificador de instrucción

Condicional o "bucle" que se coloca a continuación de la "instrucción", no antes.

modificador de valor-izquierda

Seudofunción de adjetivación que modifica el significado de un "valor-izquierda" de alguna manera declarativa. Actualmente hay tres modificadores de valores-izquierda: my, our y local.

modificador/switch

Opción de línea de comandos que influye en el funcionamiento de un programa. Generalmente se especifica con un signo menos delante. "Switch" es un alias de la "instrucción switch".

modo

En el contexto de la llamada de sistema stat(2), se refiere al campo que contiene los "bits de permiso" y el tipo del "archivo".

módulo

Archivo que define un "paquete" que tiene (casi) el mismo nombre, y que puede "exportar" símbolos o funcionar como una clase de "objeto". (El archivo .pm principal de un módulo también puede cargar otros archivos auxiliares del módulo). Vea la función predefinida use.

módulos quitados (o que se van a quitar)

Cuando se lanzó Perl 5 (vea perlhist) se incluyeron varios módulos que ya no se usan habitualmente. Se ha sugerido que hay que quitar estos módulos, ya que la distribución ha crecido bastante y ahora el criterio para agregar módulos nuevos es limitarse a aquellos módulos que ayuden a compilar, probar y extender el intérprete perl. Por otra parte, ahora existe CPAN (no existía cuando salió Perl 5.0), que puede convertirse en el nuevo hogar de los módulos suprimidos de la distribución. Actualmente no es posible quitar módulos, pero hay desarrollos recientes encaminados hacia ese fin.

módulos y características obsoletos

Las características y los módulos obsoletos son los que en su momento formaron parte de una versión estable pero que tienen algún defecto sutil, por lo que es aconsejable evitar su uso. Pueden ser eliminados o reimplementados eliminando los defectos en la siguiente versión principal (pero se conservarán en las versiones de mantenimiento). Con -w o use diagnostics se muestran advertencias de elementos obsoletos, y también se publican avisos en los documentos perldelta y en otros documentos POD. Algunas prácticas de programación que hacen un uso incorrecto de características, como my $foo if 0, también pueden quedar obsoletas.

módulo (teoría de números)

Divisor entero que se puede usar cuando se desea obtener el resto en lugar del cociente.

monger

Abreviatura de Perl Monger, un proveedor de servicios basados en Perl.

mortal

Valor temporal programado para morir cuando finalice la instrucción actual.

N

NFS

Network File System. Permite montar un sistema de archivos remoto como si fuera local.

nombre completo

Que posee un nombre completamente cualificado. El símbolo $Ent::moot es completo; $moot no es completo. Un nombre completo de archivo se especifica con respecto al directorio de nivel superior.

nombre de archivo

Identificador que se asigna a un archivo. Este nombre se muestra en un "directorio" y puede usarlo en una función open para indicar al "sistema operativo" exactamente qué archivo desea abrir, y asociar el archivo a un "identificador de archivo" que asumirá la identidad de ese archivo en el programa hasta que lo cierre.

nombre de comando

El nombre del programa que se está ejecutando actualmente, tal como se escribió en la línea de comandos. En C, el nombre de un "comando" se pasa al programa como el primer argumento de línea de comandos. En Perl se incluye por separado, como $0.

número de línea

El número de líneas leídas antes que esta más 1. Perl mantiene un número de línea independiente para cada archivo de origen o de entrada que abre. El número línea actual del código se representa mediante __LINE__. El número de línea de entrada actual (para el último archivo leído a través de <FH>) se representa con la variable $. ($INPUT_LINE_NUMBER). Muchos mensajes de error notifican ambos valores (si están disponibles).

NV

Abreviatura de Nevada, un lugar donde no hay ni rastro de civilización. NV también es un valor numérico (Numeric Value) de punto flotante interno del tipo que un "escalar" puede contener; no se debe confundir con un "IV".

nybble

La mitad de un "byte", equivalente a un dígito "hexadecimal" y que representa cuatro bits.

O

objeto

Instancia de una "clase". Algo que "sabe" a qué tipo definido por el usuario (clase) pertenece, y lo que puede hacer por ser de esa clase. El programa puede pedir al objeto que haga cosas, pero es el objeto el que decide si las hace o no. Algunos objetos son más complacientes que otros.

objeto indirecto

En gramática inglesa, una frase nominal corta, situada entre un verbo y su objeto directo, que indica el beneficiario o destinatario de la acción. En Perl, print STDOUT "$foo\n"; se puede leer como "verbo objeto-indirecto objeto", donde "STDOUT" es el destinatario de la acción print y "$foo" es el objeto que se imprime. De manera similar, al invocar un "método" puede colocar el invocante entre el método y sus argumentos:

  $gollum = new Criatura::Lamentable "Smeagol";
  give $gollum "¡Pesssscar!";
  give $gollum "¡Mi tesssoro!";

En Perl moderno se considera de mal estilo llamar a los métodos de esta manera, por lo que debe evitarse.

octal

Número en base 8. Solo se admiten los dígitos 0 a 7. Las constantes octales en Perl empiezan por 0 (p. ej., 013). Vea también la función oct.

opciones

Vea modificadores o "modificador de expresión regular".

operación atómica

Cuando Demócrito llamó "átomo" a las partes indivisibles de la materia, quería decir literalmente algo que no se puede dividir: a-(no) + tomos (divisible). Una operación atómica es una acción que no se puede interrumpir; no debe confundirse con una acción prohibida en una región libre de armas nucleares.

operador

Artilugio que transforma un número determinado de valores de entrada en un número determinado de valores de salida, y que suele estar predefinido en un lenguaje con una sintaxis o un símbolo especiales. Un operador determinado pueden tener expectativas específicas sobre los tipos de datos que se le deben pasar como argumentos (operandos) y el tipo de datos que debe devolver.

operador aritmético

Símbolo, como + o /, que indica a Perl que haga una de las operaciones aritméticas que aprendimos en el colegio.

operador binario

Operador que consume dos operandos.

operador de asignación

Puede ser una "asignación" normal o un "operador" compuesto, formado por una asignación normal y otro operador que cambie el valor de una variable in situ, es decir, con respecto a su valor anterior. Por ejemplo, $a += 2 suma 2 a $a.

operador de direccionamiento

Algunos lenguajes usan directamente las direcciones de memoria de los valores, pero esto puede ser jugar con fuego. Perl proporciona un conjunto de guantes de asbesto para controlar toda la administración de memoria. Lo más cercano a un operador de direccionamiento en Perl es el operador de barra diagonal inversa. Este operador devuelve una "referencia estricta", que es mucho más segura que una dirección de memoria.

operador de lista

Operador como join o grep, que hace algo con una lista de valores. Se suele usar en operadores predefinidos con nombre (como print, unlink y system) para los que no es necesario escribir la lista de argumentos entre paréntesis.

operador de prueba de archivo

Operador unario predefinido que se usa para determinar si algo referido a un archivo es "verdadero", como -o $archivo para comprobar si se es el propietario del archivo.

operador envolvente

Operador que rodea al "operando", como el operador de corchetes angulares o los paréntesis, o un abrazo.

operador lógico

Símbolo que representa conceptos como "and", "or", "xor" o "not".

operador relacional

Operador que indica si una relación de orden concreta es verdadera para un par de operandos. Perl tiene operadores relaciones numéricos y de cadena. Vea "secuencia de intercalación".

operador unario

Operador que se aplica a un solo "operando", como ! o chdir. Los operadores unarios son generalmente operadores de prefijo; es decir, preceden al operando. Los operadores ++ y -- pueden ser de prefijo o de postfijo. (Su posición cambia su significado).

operando

Expresión que devuelve un "valor" sobre el que actúa un "operador". Vea también "precedencia".

ordinal

Otro nombre para "código de carácter"

P

página de manual

"Página" de los manuales que se suele consultar mediante el comando man(1). Una página de manual contiene una SINOPSIS, una DESCRIPCIÓN, una lista de ERRORES, etc., y generalmente no cabe en una sola página. Existen páginas de manual que documentan comandos, llamadas de sistema, funciones de "biblioteca", dispositivos, protocolos, archivos, etc. En este libro llamamos página de manual a cualquier archivo de documentación estándar de Perl (como perlop o perldelta), independientemente del formato con el que se haya instalado en el sistema.

palabra

En lenguaje informático normal, fragmento de datos del tamaño procesado de forma más eficiente por el equipo, normalmente 32 bits, quitando o sumando algunas potencias de 2. En la cultura Perl normalmente hace referencia a un "identificador" alfanumérico (guiones bajos incluidos) o a una cadena de caracteres sin espacios en blanco limitada por espacio en blanco o delimitadores de cadena.

palabra clave

Vea "palabras reservadas".

palabras reservadas

Palabras con un significado predefinido específico para un "compilador", como if o delete. A diferencia de Perl, muchos lenguajes permiten usar palabras reservadas para designar otras cosas. (Por eso se llaman reservadas). En Perl no puede usar palabras reservadas para designar etiquetas o identificadores de archivo. También se denominan "palabras clave".

palabra suelta

Palabra lo suficientemente ambigua como para no ser considerada válida cuando se activa use strict 'subs'. Si no se usa este pragma, se tratará la palabra como si estuviera escrita entre comillas.

paquete

Espacio de nombre para variables globales, subrutinas, etc., que permite distinguirlas de símbolos con el mismo nombre de otros espacios de nombres. En cierto modo, solo el paquete es global, ya que fuera del paquete solo se puede acceder a los símbolos de la tabla de símbolos del paquete haciendo referencia al paquete. Pero en otro sentido, todos los símbolos de paquete son variables globales, solo que bien organizadas.

paquete actual

El "paquete" en el que se compila la instrucción actual. Recorra hacia atrás el texto del programa por el ámbito léxico actual o cualquier ámbito léxico de nivel superior hasta llegar a la declaración del paquete. Ese es el nombre del paquete actual.

parámetro

Vea "argumento".

parchear/parche

Parchear consiste en aplicar un parche. En el mundo hacker, un parche es una lista de diferencias entre dos versiones de un programa como las que se pueden aplicar mediante el programa patch(1) cuando se desea corregir un error o actualizar una versión antigua.

PATH

Lista de directorios en los que el sistema busca el programa que el usuario desea "ejecutar". La lista se almacena como una de las variables de entorno, a la que se accede en Perl a través de $ENV{PATH}.

patrón

Plantilla usada en "detección de patrones".

patrón de tiempo de ejecución

Patrón que contiene una o más variables que deben interpolarse antes de que se analice el patrón como una "expresión regular" y que, por tanto, no se puede analizar en tiempo de compilación, sino que se debe volver a analizar cada vez que se evalúa el operador de detección de patrón. Los patrones de tiempo de ejecución son útiles pero costosos.

pereza

La cualidad que nos obliga a realizar un gran esfuerzo para reducir el gasto global de energía. Nos impulsa a escribir programas que nos ahorran trabajo y que pueden resultar útiles a otras personas, y a documentarlos para no tener que contestar consultas al respecto. Por esta razón, la consideremos la primera gran virtud de un programador. Sin ella, no estaría leyendo esto. Vea también "impaciencia" y "soberbia".

Pern

Lo que se obtiene al ejecutar Perl++ dos veces. Hacerlo una sola vez simplemente le riza el pelo. Debe incrementar ocho veces para lavar el pelo. Enjabonar, aclarar, repetir.

P+F

Preguntas más frecuentes (aunque no necesariamente frecuentemente contestadas, especialmente si la respuesta ya aparece en los documentos de preguntas más frecuentes sobre Perl que se incluyen en la distribución estándar de Perl).

pila

Dispositivo en el que se pueden colocar cosas para recuperarlas posteriormente en orden inverso al de colocación. Vea "LIFO".

plataforma

El contexto de hardware y software en el que se ejecuta un programa. A programa escrito en un lenguaje dependiente de la plataforma puede no funcionar si se cambia alguno de los elementos siguientes: el equipo, el sistema operativo, las bibliotecas, el compilador o la configuración del sistema. El intérprete perl debe compilarse de distinta manera para cada plataforma, ya que está implementado en C, pero los programas escritos en el lenguaje Perl son en gran medida independientes de la plataforma.

pod

Lenguaje de marcado que se usa para incrustar documentación en código Perl. Vea perlpod.

polimorfismo

La noción de que se puede decir a un "objeto" que haga algo genérico y este interpretará el comando de distinta manera en función de su tipo. [admitir muchas formas]

porción

Selección de un número de elementos de una "lista", un "array" o un "hash".

portable

En su día, se llamaba así al código C compilable en BSD y SysV. En general, se designa así al código que se puede adaptar fácilmente a otra "plataforma"; puede definir "fácilmente" como le parezca (y generalmente se hace así). Todo nos parecerá portable si lo deseamos con la suficiente intensidad. Vea caravana o Puente de Londres.

porter

Miembro del equipo de desarrollo principal. Alguien que adapta software de una "plataforma" a otra. Adaptar programas escritos en lenguajes dependientes de la plataforma, como C, puede ser difícil, pero la adaptación de programas como Perl merece la pena.

POSIX

Especificación de la Portable Operating System Interface (Interfaz de sistema operativo portable).

postfijo

Operador que sigue a su "operando", como en $x++.

pp

Abreviatura interna de código "push-pop", es decir, el código C que implementa la pila de Perl.

pragma

Módulo estándar cuyos prácticos indicios y sugerencias se reciben (y posiblemente omiten) en tiempo de compilación. Los nombres de pragmas se escriben en minúsculas.

precedencia

Las normas de conducta que, en ausencia de otros criterios, determinan qué debe suceder primero. Por ejemplo, si no se usan paréntesis, una multiplicación siempre se realizará antes que una suma.

prefijo

Operador que precede a su "operando", como en ++$x.

preprocesador de C

El primer barrido típico del compilador de C, que procesa las líneas que empiezan por # para compilación condicional y definición de macros, y que manipula de varias maneras el texto del programa basándose en las definiciones actuales. También se denomina cpp(1).

preprocesamiento

Lo que hace algún "proceso" auxiliar para transformar los datos entrantes a un formato más adecuada para el proceso actual. Estos datos suelen llegar a través de una "tubería". Vea también "preprocesador de C".

procedimiento

Una "subrutina".

proceso

Instancia de un programa en ejecución. En sistemas multitarea como Unix, dos o más procesos independientes pueden ejecutar el mismo programa por separado simultáneamente; de hecho, la función fork está diseñada para proporcionar esta sensación de felicidad. En otros sistemas operativos, los procesos se llaman a veces "hilos de ejecución", "tareas" o "trabajos", generalmente con ligeros matices de significado.

propiedad

Vea "variable de instancia" o "propiedad de carácter".

propiedad de carácter

Clase de caracteres que se puede detectar mediante el "metasímbolo" \p. Hay muchas propiedades estándar definidas para "Unicode".

propietario

El usuario (aparte del superusuario) que tiene el control absoluto sobre un "archivo". Un archivo también puede tener un "grupo" de usuarios que pueden ser copropietarios, si el propietario real lo permite. Vea "bits de permiso".

protocolo

En contexto de redes, una forma acordada de enviar mensajes de forma que ninguno de los interlocutores se confunda.

prototipo

Parte opcional de una declaración de "subrutina" que indica al compilador de Perl cuántos argumentos y de qué tipo se pueden pasar como "argumentos reales", a fin de poder escribir llamadas a subrutinas que se analizan de forma similar a las funciones predefinidas. (O que no se analizan, si fuera el caso).

prueba de subclase vacía

La noción de que una "clase derivada" vacía debe comportarse exactamente igual que su "clase base".

puerto-adaptar

La parte de la dirección de un socket TCP o UDP que dirige los paquetes al proceso correcto tras localizar el equipo correcto. Es como la extensión telefónica que se teclea tras marcar el número. "Adaptación" es el resultado de convertir código para que se ejecute en una plataforma distinta de la original. "Adaptar" es el verbo usado para designar esta conversión.

pumpking

La persona que tiene la "calabaza de parches" en su poder, el encargado de activar la bomba, o al menos de cebarla. Debe estar dispuesto a representar el papel de la Gran Calabaza cada cierto tiempo.

puntero

En un lenguaje como C, es una "variable" que contiene la posición exacta de algún elemento en la memoria. Perl controla los punteros internamente para que no tengamos que preocuparnos de ello. Solo tenemos que usar punteros simbólicos en forma de claves y nombres de "variable", o referencias estrictas, que no son punteros (pero actúan como si lo fueran; de hecho, contienen punteros).

punto de interrupción

Punto del programa en el que se indica al depurador que debe detener la ejecución para determinar si ya se ha producido alguna anomalía.

punto flotante

Método para almacenar números con "notación científica" en el que la precisión del número es independiente de su magnitud (el punto decimal "flota"). Perl hace sus cálculos numéricos con números de punto flotante cuando no puede usar enteros para ello. Los números de punto flotante son meras aproximaciones de los números reales.

PV

Un valor de puntero ("pointer value"), que en la jerga de componentes internos de Perl equivale a char*.

R

recolección de elementos no utilizados

Característica con un nombre desafortunado; debería llamarse "esperar que tu madre limpie tu desorden". En un sentido estricto, Perl no hace esto, sino que se basa en un mecanismo de recuento de referencias para mantener el orden. Sin embargo, raramente hablamos en un sentido estricto y nos referiremos habitualmente al esquema de recuento de referencias como una forma de recolección de elementos no deseados. (Puede estar tranquilo, cuando finaliza la ejecución del intérprete se ejecuta un recolector de elementos no deseados "real" para garantizar que todo quede limpio si se ha desordenado con referencias circulares, etc.).

recursividad

El arte de definir algo (al menos parcialmente) en términos de sí mismo, algo que no está bien visto en los diccionarios pero que suele funcionar en programas informáticos si se procura evitar que el proceso continúe indefinidamente, lo que sería parecido a un bucle infinito pero con modos de error más espectaculares.

redistribuible gratuitamente

Significa que si proporciona copias piratas a sus amigos y nos enteramos, no está infringiendo las leyes. De hecho, nos gustaría que regalara una copia a todos sus amigos.

referencia

Donde se busca un puntero a información que está en otra parte. (Vea "direccionamiento indirecto"). Hay dos tipos de referencias: referencias simbólicas y referencias estrictas.

referencia estricta

Valor "escalar" que contiene la dirección real de un "referente", de forma que el recuento de referencias del referente la tenga en cuenta. (Algunas referencias estrictas se guardan internamente, como la referencia implícita de las vacantes de variable de un "typeglob" a su referencia correspondiente). Una referencia estricta no es lo mismo que una "referencia simbólica".

referencia no estricta

Vea "referencia simbólica".

referencia simbólica

Variable cuyo valor es el nombre de otra variable o subrutina. Al "desreferenciar" la primera variable, obtiene la segunda. Con use strict 'refs' no se admiten referencias simbólicas.

referente

Aquello a lo que una referencia hace referencia; puede tener nombre o no. Algunos tipos comunes de referentes son los escalares, arrays, hashes o subrutinas.

regex

Vea "expresión regular".

registro

Conjunto de valores de datos relacionados de un "archivo" o una "secuencia" que suelen estar asociados con un campo de "clave" única. En Unix, suele corresponder a una "línea", o un conjunto de líneas que termina en una línea en blanco (un "párrafo"). Cada línea del archivo /etc/passwd es un registro correspondiente a un nombre de inicio de sesión, que contiene información sobre dicho usuario.

retrorreferencia

Subcadena capturada por un subpatrón escrito entre paréntesis simples en una "expresión regular"; también se denomina grupo de captura. Se pueden colocar las secuencias (\g1, \g2, etc.) más adelante en el mismo patrón para hacer referencia al subpatrón correspondiente en la detección actual. Fuera del patrón, las variables numeradas ($1, $2, etc.) hacen referencia a estos mismos valores, con tal de que el patrón fuera la última detección correcta en el ámbito dinámico actual. Se puede usar \g{-1} para hacer referencia a un grupo por posición relativa en lugar de absoluta; también se puede asignar un nombre a un grupo y posteriormente hacer referencia a ese nombre en lugar de usar el número correspondiente. Vea "Grupos de captura" in perlre.

RFC

Request For Comment (Solicitud de comentarios). Pese a sus tímidas connotaciones, es el nombre de una serie de importantes documentos sobre normas.

root

El superusuario (UID == 0). También es el directorio de nivel superior (raíz) del sistema de archivos.

RTFM

Read The Fine Manual, lo que le dirán cuando piensen que lo que tiene que hacer es leer el magnífico manual disponible.

ruta de acceso

Nombre completo de archivo, como /usr/bin/perl. A veces se confunde con "PATH".

RV

Vehículo recreativo ("recreational vehicle" en inglés). No debe confundirse con "vehicular recreation" (excursiones campo a través). RV también es un valor de referencia (Reference Value) interno del tipo que se puede almacenar en un "escalar". Si aún no se siente confundido, vea también "IV" y "NV".

S

salida estándar

Secuencia de salida predeterminada del programa, que no debe preocuparse del destino de los datos, si es posible. En un programa Perl se representa mediante el "identificador de archivo" "STDOUT".

script

Archivo de texto que es un programa que debe ejecutarse directamente, en lugar de compilarse a otro tipo de archivo antes de su ejecución. Además, en el contexto de "Unicode", un sistema de escritura para un lenguaje o grupo de lenguajes específicos, como Griego, Bengalí o Klingon.

script de una sola línea

En inglés se llama one-liner. Es un programa informático completo embutido en una sola línea de texto.

script kiddie

Un "cracker" que no es un "hacker" pero que sabe lo suficiente para ejecutar scripts enlatados. Un programador que no sabe lo que se trae entre manos.

secuencia

Flujo de datos que entra o sale en un proceso como una serie continua de bytes o caracteres sin la apariencia de estar dividido en paquetes. Es un tipo de "interfaz"; la "implementación" subyacente puede dividir los datos en paquetes independientes para su entrega, pero estos detalles se ocultan.

secuencia de escape

Vea "metasímbolo".

secuencia de intercalación

Orden en que se ordenan los caracteres. Se usa en rutinas de comparación de cadenas para decidir, por ejemplo, en qué parte de este glosario debe ir "secuencia de intercalación".

sed

El venerable Stream EDitor del que Perl ha derivado algunas de sus ideas.

semáforo

Tipo de interbloqueo sofisticado que impide que varios hilos de ejecución o procesos usen los mismos recursos simultáneamente.

señal

Un rayo surgido de la nada; es decir, un evento desencadenado por el "sistema operativo", probablemente cuando menos se espera.

separador

Carácter o "cadena" que evita que dos cadenas se confundan. La función split usa estos separadores. No se debe confundir con un "delimitador" o un "terminador". En la frase anterior se usa la palabra "o" como separador de las dos alternativas.

separador de lexemas

Nombre elegante de "tokenizador".

serialización

Proceso de colocar una "estructura de datos" sofisticada en orden lineal de forma que se pueda almacenar como una "cadena" en un archivo de disco o una base de datos, o se pueda enviar a través de una "tubería". En inglés también se llama marshalling.

servicio

Algo que se hace por alguien para darle felicidad, como alegrarle el día (o incluso justificar toda una vida). En algunos equipos, la función getservent muestra los servicios conocidos.

servidor

En contexto de redes, un "proceso" que anuncia un "servicio" o que simplemente espera en una ubicación conocida a que los clientes que necesitan el servicio se pongan en contacto con él.

setgid

Igual que "setuid", solo que otorga privilegios de "grupo".

setuid

Se dice de un programa que se ejecuta con los privilegios de su "propietario" en lugar de (como suele ser el caso) los privilegios de quien lo ejecuta. También describe el bit de la palabra de modo ("bits de permiso") que controla la característica. Este bit debe ser establecido explícitamente por el propietario y hay que tener cuidado para que el programa no otorgue más privilegios que los debidos.

seudofunción

Construcción que a veces parece una función, sin serlo realmente. Se suele reservar para modificadores de "valor-izquierda" como my, para modificadores de "contexto" como scalar y para construcciones con distintos tipos de comillas, q//, qq//, qx//, qw//, qr//, m//, s///, y/// y tr///.

seudohash

Referencia a un array cuyo primer elemento parece contener una referencia a un hash. Puede tratar una referencia de seudohash como una referencia de array o una referencia de hash.

seudoliteral

Operador que se parece a un "literal", como el operador de recolección de salida, `comando`.

shebang

Versión irlandesa de los McGillicuddy. En la cultura Perl es la combinación de las palabras "sharp" y "bang", y se refiere a la secuencia #! que indica al sistema dónde puede encontrar el intérprete.

shell

Intérprete de línea de comandos. Es el programa que muestra un símbolo del sistema interactivo, acepta una o varias líneas de entrada y ejecuta los programas especificados, cada uno con sus argumentos y datos de entrada adecuados. Una shell también puede ejecutar scripts que contienen estos comandos. En Unix, las shells típicas son Bourne shell (/bin/sh), C shell (/bin/csh) y Korn shell (/bin/ksh). En sentido estricto, Perl no es una shell porque no es interactivo, aunque los programas Perl pueden ser interactivos.

siega

Los últimos rituales realizados por un "proceso" primario en nombre de un proceso derivado fallecido para que no acabe convertido en un "zombie". Vea las llamadas de función wait y waitpid.

símbolo

Generalmente, cualquier "token" o "metasímbolo". Se suele usar de manera más específica para designar el tipo de nombre que se puede encontrar en una "tabla de símbolos".

sincrónico

Programación en la que se puede determinar la secuencia ordenada de eventos; es decir, las cosas suceden de una en una, no a la vez.

sintaxis

Viene del griego y significa "con orden". Especifica cómo deben disponerse las cosas (en particular, los símbolos).

sistema de archivos

Conjunto de directorios y archivos que residen en una partición del disco. A veces se denomina "partición". Puede cambiar el nombre de un archivo o incluso moverlo de un directorio a otro en el sistema de archivos sin mover realmente el archivo (al menos en Unix).

sistema de composición

"Constructor" para un "referente" que en realidad no es un "objeto", como un array o un hash anónimos (o, ya puestos, una sonata). Por ejemplo, un par de llaves actúa como un sistema de composición para un hash, y un par de corchetes actúa como un sistema de composición para un array. Vea "Crear referencias" in perlref.

sistema operativo

Programa especial que se ejecuta directamente sobre la máquina y oculta los detalles poco agradables de la administración de procesos y dispositivos. Se suele usar también en un sentido más informal para indicar una cultura de programación específica. Este sentido informal se puede usar con varios niveles de especificidad. En un extremo, se puede decir que todas las versiones de Unix y los sistemas similares a Unix son un mismo sistema operativo (lo que molestará a muchas personas, especialmente a abogados y otros defensores). En el otro extremo, se puede decir que esta versión concreta del sistema operativo de este fabricante concreto es distinta de cualquier otra versión de sistema operativo de este fabricante o de cualquier otro fabricante. Perl es mucho más adaptable de un sistema operativo a otro que muchos lenguajes. Vea también "arquitectura" y "plataforma".

soberbia

Hibris. Orgullo excesivo. El detalle por el que Zeus querría destruirle. También es la cualidad que permite escribir (y mantener) programas de forma que los demás no los puedan criticar. Es por ello la tercera gran virtud de un programador. Vea también "pereza" e "impaciencia".

sobrecarga de operador

Tipo de "sobrecarga" que se puede realizar en operadores predefinidos para que se apliquen a objetos como si estos fueran valores escalares normales, pero con la semántica suministrada por la clase del objeto. Se configura con el "pragma" overload.

sobrecargar

Otorgar significados adicionales a un símbolo o una construcción. En realidad, todos los lenguajes usan la sobrecarga en mayor o menor medida, ya que los humanos tenemos facilidad para interpretar las cosas en "contexto".

sobrescribir

Ocultar o invalidar otra definición con el mismo nombre. (No se debe confundir con "sobrecargar", que consiste en agregar definiciones que hay que desambiguar de alguna manera alternativa). Para aumentar la confusión, usamos la palabra con dos definiciones sobrecargadas: describir cómo puede definir su propia "subrutina" para ocultar una "función" predefinida del mismo nombre (vea "Sobrescribir funciones predefinidas" in perlsub) y describir cómo se puede definir un "método" de sustitución en una "clase derivada" para ocultar un método de la "clase base" con el mismo nombre (vea perlobj).

socket

Extremo para comunicación de red entre varios procesos que representa un papel parecido al de un teléfono o un apartado de correos. La característica más importante de un socket es su "dirección de red" (es como un número de teléfono). Los distintos tipos de sockets tienen distintos tipos de direcciones; algunas parecen nombres de archivo y otras no.

software open source

Programas para los que el código fuente está disponible gratuitamente y se puede redistribuir gratuitamente, sin descripción comercial asociada. Encontrará una definición más detallada en http://www.opensource.org/osd.html.

STDERR

Vea "error estándar".

STDIN

Vea "entrada estándar".

STDIO

Vea "E/S estándar".

STDOUT

Vea "salida estándar".

struct

Palabra clave de C que introduce una definición o un nombre de estructura.

subcadena

Parte de una "cadena", que empieza en una posición de "carácter" ("desplazamiento") determinada y mide un número determinado de caracteres.

subclase

Vea "clase derivada".

subíndice

Valor que indica la posición de un "elemento" de "array" concreto de un array.

subpatrón

Componente de un patrón de "expresión regular".

subpatrón de código

Subpatrón de "expresión regular" cuyo propósito real es ejecutar código Perl, como por ejemplo los subpatrones (?{...}) y (??{...}).

subrutina

Parte de un programa que tiene un nombre o es accesible de otra manera, de forma que se pueda invocar desde otro punto del programa para realizar alguna tarea secundaria. Una subrutina se suele parametrizar para realizar cosas distintas aunque relacionadas en función de sus argumentos de entrada. Si la subrutina devuelve un "valor" significativo, también se denomina "función".

succionar

(En inglés, slurp). Leer un "archivo" entero y asignar su contenido a una "cadena" en una sola operación.

superclase

Vea "clase base".

superusuario

La persona a la que el "sistema operativo" deja hacer casi todo. Normalmente, el administrador del sistema o alguien que finge ser el administrador del sistema. En sistemas Unix, el usuario "root". En sistemas Windows, generalmente el usuario Administrador.

sustitución

Modificación de partes de una cadena mediante el operador s///. (Evitamos usar este término para designar la "interpolación de variables").

SV

Abreviatura de "scalar value" (valor escalar). En el intérprete de Perl cada "referente" se trata como un miembro de una clase derivada de SV de forma orientada a objetos. En Perl, todo "valor" se pasa como un puntero SV* del lenguaje C. La estructura de datos "struct" de SV conoce su propio "tipo de referente" y el código es lo suficientemente inteligente (o eso esperamos) para no intentar llamar a una función de "hash" en una "subrutina".

T

tabla de símbolos

Área que un "compilador" usa para recordar símbolos. Un programa como el intérprete perl debe recordar todos los nombres de todas las variables, identificadores de archivos y subrutinas que se han usado. Para ello coloca los nombres en un tabla de símbolos que se implementa en Perl como una "tabla hash". Existe una tabla de símbolos independiente para cada "paquete", a fin de asignar a cada paquete su propio "espacio de nombres".

tabla hash

Estructura de datos usada internamente por Perl para implementar arrays asociativos (hashes) de manera eficiente. Vea también "casilla".

TCP

Abreviatura de Protocolo de control de transmisión. Protocolo que envuelve al Protocolo de Internet y que hace que un programa de aplicación vea un mecanismo de transmisión de paquetes poco fiable como una "secuencia" de bytes fiable. (Casi siempre).

terminador

Carácter o "cadena" que marca el final de otra cadena. La variable $/ contiene la cadena con la que termina una operación readline, que chomp elimina del final. No se debe confundir con un "delimitador" o un "separador". El punto al final de esta frase es un terminador.

terminal/término

Nodo hoja de un "árbol de sintaxis". Cosa que desempeña el rol gramatical de un "operando" para los operadores de una expresión.

ternario

Operador que consume tres operandos. A veces también se llama "trino".

texto

Cadena o "archivo" que contiene principalmente caracteres que se pueden imprimir.

tiempo de compilación

Tiempo en el que Perl intenta entender el código, en contraste con el "tiempo de ejecución", que es el tiempo en que piensa que ya lo entiende y simplemente intenta ejecutar las instrucciones del código.

tiempo de ejecución

El tiempo en el que Perl hace lo que el código dice, en contraste con el periodo de tiempo anterior, en el que intentaba averiguar si lo que el programa decía tenía sentido (el "tiempo de compilación").

tipo

Vea "tipo de datos" y "clase".

tipo de datos

Conjunto de valores posibles, junto con todas las operaciones que manipulan esos valores. Por ejemplo, un tipo de datos numérico tiene un determinado conjunto de números que se pueden usar y varias operaciones matemáticas que se pueden aplicar a los números pero que tendrían poco sentido con una cadena como "Kilroy", por ejemplo. Las cadenas tienen sus propias operaciones, como la "concatenación". Los tipos compuestos formados por elementos más pequeños suelen tener operaciones de composición y descomposición, y quizás también de reordenación. Los objetos que modelan cosas del mundo real suelen tener operaciones que se corresponden con actividades reales. Por ejemplo, si modela un ascensor, el objeto ascensor puede tener un "método" abrir_puerta().

TMTOWTDI

There's More Than One Way To Do It (Se puede hacer de varias maneras), el lema de Perl. La noción de que puede haber más de una forma válida de solucionar un problema de programación en un contexto determinado. (Esto no significa que siempre sea mejor tener más maneras de hacer algo ni que todas las maneras posibles sean igualmente deseables, sino simplemente que no tiene que haber una única manera de hacer las cosas). En inglés se pronuncia TimToady.

token

Morfema en un lenguaje de programación. Es la unidad de texto con significado semántico más pequeña.

tokenizador

Módulo que divide el texto de un programa en una secuencia de tokens para que el analizador los analice posteriormente.

tokenizar

Dividir el texto de un programa en tokens. También se llama "separar en lexemas", en cuyo caso obtenemos "lexemas" en lugar de tokens.

transliterar

Convertir una representación de cadena en otra mediante la asignación de cada carácter de la cadena de origen a su carácter correspondiente en la cadena resultante. Vea "tr/LISTA_BÚSQUEDA/LISTA_SUSTITUCIÓNT/cdsr" in perlop.

trino

No es un sistema estelar con tres estrellas, sino un "operador" que se aplica a tres operandos. Es equivalente a "ternario".

troff

Venerable lenguaje de composición tipográfica del que Perl deriva el nombre de su variable $% y que se usa en secreto para producir libros del camello.

truncar

Vaciar un archivo de contenido existente, ya sea de forma automática al abrir un archivo para escritura o explícitamente mediante la función truncate.

tubería

Conexión directa que pasa la salida de un "proceso" a la entrada de otro sin usar un archivo temporal intermedio. Una vez establecida la conexión, los dos procesos en cuestión pueden leer y escribir como si se comunicaran con un archivo normal, aunque con algunas limitaciones.

tubería con nombre

Tubería con un nombre incrustado en el "sistema de archivos", de forma que dos procesos no relacionados puedan acceder a dicha conexión.

typedef

Definición de tipo en el lenguaje C.

typeglob

Uso de un solo identificador con el prefijo *. Por ejemplo, *nombre puede significar $nombre, @nombre, %nombre, &nombre o simplemente nombre. El uso que le dé determinará si se interpreta como todas las opciones o como una sola de ellas. Vea "Typeglobs e identificadores de archivo" in perldata.

U

UDP

Protocolo de datagramas de usuario, la manera típica de enviar datagramas a través de Internet.

UID

El identificador de un usuario. Se suele usar en el contexto de propiedad de un "archivo" o "proceso".

umask

Máscara de los "bits de permiso" que deben desactivarse al crear archivos o directorios, a fin de establecer una política de usuarios a los que normalmente se les denegaría el acceso. Vea la función umask.

Unicode

Juego de caracteres que contiene prácticamente todos los juegos de caracteres usados en el planeta. Vea perlunicode y http://www.unicode.org.

unidad de compilación

El "archivo" (o "cadena", en el caso de eval) que se está compilando actualmente.

Unix

Lenguaje muy grande y en constante evolución, con varias sintaxis alternativas y en gran medida incompatibles con las que todos pueden definir lo que deseen de la forma que prefieran, y normalmente lo hacen. Los hablantes de esta lengua piensan que es fácil de aprender, ya que se adapta fácilmente a sus necesidades, pero las diferencias entre dialectos hacen que la comunicación entre las distintas tribus sea prácticamente imposible; los viajeros deben resignarse a usar un subconjunto tipo pidgin de la lengua. Un programador de shell Unix debe dedicar muchos años al estudio del oficio para lograr que todos le entiendan. Muchos han abandonado esta disciplina y ahora se comunican en un lenguaje similar al Esperanto denominado Perl.

Antiguamente también se llamaba Unix al código que un par de empleados de Bell Labs escribió para usar un equipo PDP-7 que en ese momento estaba más bien ocioso.

V

vacante de objeto indirecto

La posición sintáctica situada entre una llamada a método y sus argumentos, cuando se usa la sintaxis indirecta de invocación de objetos. (La vacante se distingue por la ausencia de una coma entre ella y el siguiente argumento). Aquí "STDERR" está en la vacante de objeto indirecto:

  print STDERR "¡Despierta!  ¡Despierta!  ¡Miedo, fuego,
      enemigos!  ¡Despierta!\n";
vaciar

El acto de volcar un "búfer", generalmente cuando se llena.

valor

Elemento de datos real, en contraste con todas las variables, referencias, claves, índices, operadores, etc. que se necesitan para acceder al valor.

valor de lista

Lista sin nombre de valores escalares temporales que se puede pasar en un programa desde cualquier función que genere listas a cualquier función o construcción que proporcione un "contexto de lista".

valor-derecha

Valor que se encuentra en el lado derecho de una "asignación". Vea también "valor-izquierda".

valor devuelto

El "valor" producido al evaluar una "subrutina" o "expresión". En Perl, un valor devuelto puede ser una "lista" o un "escalar".

valor escalar

Valor que es un "escalar", en contraste con una "lista".

valor-izquierda

Término usado por defensores de la lengua para designar una ubicación de almacenamiento a la que se puede asignar un "valor" nuevo, como una "variable" o un elemento de un "array". Decimos "izquierda" porque un lugar típico de los valores-izquierda es el lado izquierdo de una asignación. Una función o expresión "compatible con valores-izquierda" permite que se le asignen valores (por ejemplo, pos($x) = 10).

valor predeterminado

Valor elegido automáticamente si no se proporciona un valor.

variable

Ubicación de almacenamiento con nombre que puede contener cualquiera de los distintos tipos de valores que necesite el programa.

variable de entorno

Mecanismo mediante el cual un agente de alto nivel, como un usuario, puede pasar sus preferencias a sus futuros descendientes (procesos derivados de primer nivel, de segundo nivel, etc.). Cada variable de entorno es un par "clave"-"valor", como una entrada de un "hash".

variable de instancia

Atributo de un "objeto"; datos almacenados en un objeto concreto, no en la clase como un todo.

variable escalar

Variable con el prefijo $ que contiene un único valor.

variable estática

Esto no existe. Simplemente use una "variable léxica" en un ámbito más amplio que el de la "subrutina".

variable léxica

Variable sujeta a "control de ámbito léxico", declarada con my. En inglés se suele llamar simplemente "lexical". (La declaración our declara un nombre de ámbito léxico para una variable global, que no es una variable léxica).

variable léxica con tipo

Variable léxica que se declara con un tipo de "clase": my Pony $guillermo.

variables mágicas

Variables especiales que tienen efectos secundarios cuando se accede a ellas o se les asigna un valor. Por ejemplo, en Perl, si se cambian los elementos del array %ENV, también se cambian las variables de entorno correspondientes que los subprocesos usarán. Puede leer el valor de la variable $! para averiguar cuál es el número o mensaje de error actual del sistema.

variádica

Se dice de una "función" que recibe alegremente un número indeterminado de "argumentos reales".

vector

En jerga matemática, una lista de valores escalares.

verdadero

Cualquier valor escalar cuya evaluación no devuelva 0 o "".

vínculo simbólico

Nombre de archivo alternativo que apunta al "nombre de archivo" real, que a su vez apunta al "archivo" real. Siempre que el "sistema operativo" intenta analizar una "ruta de acceso" que contiene un vínculo simbólico, simplemente sustituye el nombre nuevo y continúa con el análisis.

vínculo/vincular

El sustantivo se refiere a un nombre de un "archivo" contenido en un "directorio". Un archivo determinado puede tener varios vínculos asociados. Es como tener asociado en un listín telefónico un mismo número de teléfono con nombres distintos. El verbo (vincular) significa resolver los símbolos no resueltos de un archivo parcialmente compilado como una imagen (casi) ejecutable. En general, la vinculación puede ser estática o dinámica; esto no tiene nada que ver con el control de ámbito estático o dinámico.

virtual

Proporciona el aspecto de algo que no es real, como en "la memoria virtual no es memoria real". (Vea también "memoria".) Lo opuesto de "virtual" es "transparente", que significa que proporciona la realidad de algo sin la apariencia. Por ejemplo, Perl procesa la codificación de caracteres UTF-8 de longitud variable de forma transparente.

volcado del núcleo

Cadáver de un "proceso", en forma de archivo que queda en el "directorio de trabajo" del proceso, generalmente como consecuencia de un determinado tipo de error irrecuperable.

vuelta atrás

La práctica de decir "Si pudiera volver a empezar, lo haría todo de otra manera", y después volver atrás y hacer las cosas de manera diferente. En términos matemáticos, consiste en volver de una recursión que no ha finalizado correctamente en un árbol de posibilidades. Perl vuelve atrás tras intentar detectar un patrón con una "expresión regular" si los intentos realizados no logran detectarlo. Vea "Vuelta atrás" in perlre.

W

WYSIWYG

What You See Is What You Get. Se suele usar cuando algo que aparece en pantalla coincide con el aspecto final, como las declaraciones format de Perl. También para indicar lo opuesto a lo mágico, porque todo funciona exactamente de la manera esperada, como el formato de tres argumentos de la función open.

X

XS

Lenguaje que permite extender Perl con código C y C++. XS es un formato de archivo de descripción de interfaz que se usa para crear una interfaz de extensión entre código Perl y código C (o una biblioteca C) que se desea usar en Perl. En perlxs encontrará una explicación precisa. También puede leer el tutorial perlxstut.

XSUB

Subrutina externa definida en "XS".

Y

yacc

Yet Another Compiler Compiler. Un generador de analizadores sin el cual Perl probablemente no habría existido. Vea el archivo perly.y de la distribución de código fuente de Perl.

Z

zombie

Proceso fallecido (finalizado) cuyo proceso primario aún no ha recibido la notificación correspondiente por haber llamado a wait o waitpid. Si usó fork, debe realizar la limpieza de los procesos derivados que finalicen; de lo contrario, la tabla del proceso se llenará y esto no gustará nada al administrador del sistema.

AUTOR Y COPYRIGHT

Basado en el Glosario de Programming Perl, Tercera Edición, de Larry Wall, Tom Christiansen y Jon Orwant. Copyright (c) 2000, 1996, 1991 O'Reilly Media, Inc. Puede distribuir este documento en los mismos términos que Perl.

TRADUCTORES

  • Joaquín Ferrero (Tech Lead)

  • Enrique Nell (Language Lead)