Skip to content
Browse files

Perl v5.16.2.01

  • Loading branch information...
1 parent 1f12d95 commit 660528a20598206b4fc16548a82d6eaf14c848e4 joaquinferrero committed
View
2,608 memory/work/perlspanish-omegat.explorer.tmx
1,367 additions, 1,241 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
2 pod/translated/README
@@ -1,6 +1,6 @@
Perl is Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012
-by Larry Wall and others. Reservados todos los derechos.
+by Larry Wall and others. Todos los derechos reservados.
View
86 pod/translated/perlcheat.pod
@@ -9,69 +9,69 @@ Esta 'hoja resumen' es una referencia útil para programadores principiantes. No
=head2 La hoja
CONTEXTOS SIGILOS ref ARRAYS HASHES
- void $escalar ESCALAR @array %hash
- escalar @array ARRAY @array[0, 2] @hash{'a', 'b'}
- lista %hash HASH $array[0] $hash{'a'}
- &sub CÓDIGO
- *glob GLOB VALORES ESCALARES
- FORMATO número, cadena, ref, glob, undef
+ void $escalar SCALAR @array %hash
+ escalar @array ARRAY @array[0, 2] @hash{'a', 'b'}
+ lista %hash HASH $array[0] $hash{'a'}
+ &sub CODE
+ *glob GLOB VALORES ESCALARES
+ FORMAT número, cadena, ref, glob, undef
REFERENCIAS
- \ referencia $$foo[1] equiv. $foo->[1]
- $@%&* resolver referencia $$foo{bar} equivale a $foo->{bar}
- [] anon. anónimo ${$$foo[1]}[2] equivale a $foo->[1]->[2]
- {} anon. anónimo ${$$foo[1]}[2] equivale a $foo->[1][2]
+ \ referencia $$foo[1] equivale a $foo->[1]
+ $@%&* desreferenciar $$foo{bar} equivale a $foo->{bar}
+ [] ref. array anón. ${$$foo[1]}[2] equivale a $foo->[1]->[2]
+ {} ref. hash anón. ${$$foo[1]}[2] equivale a $foo->[1][2]
\() lista de refs
- NÚMEROS frente a CADENAS VÍNCULOS
- PRIORIDAD OPERADORES = = perldoc.perl.org
+ NÚMEROS CADENAS VÍNCULOS
+ PRECEDENCIA OP. = = perldoc.perl.org
-> + . search.cpan.org
++ -- == != eq ne cpan.org
** < > <= >= lt gt le ge pm.org
! ~ \ u+ u- <=> cmp p3rl.org
=~ !~ perlmonks.org
* / % x SINTAXIS
- + - . foreach (LISTA) { } for (a;b;c) { }
+ + - . foreach (LISTA) { } for (a;b;c) { }
<< >> while (e) { } until (e) { }
ops unarios con nombre if (e) { } elsif (e) { } else { }
< > <= >= lt gt le ge unless (e) { } elsif (e) { } else { }
== != <=> eq ne cmp ~~ given (e) { when (e) {} default {} }
&
- | ^ METACARACTERES EXP. REG. MODIFICADORES EXP. REG.
- && ^ principio cadena /i no distingue may./min.
- || // $ fin cadena (antes \n) /m basado en líneas ^$
- .. ... + una o más /s . incluye \n
- ?: * cero o más /x ignorar espacios
- = += -= *= etc ? cero o una /p preservar
- , => {3,7} repeticiones en rango /a ASCII /aa safe
- ops lista | alternancia /l config. regional /d dual
- not [] clase caracteres /u Unicode
- and \b límite de palabra /e evaluar /ee reevaluar
- or xor \z fin cadena /g global
- () capturar /o compilar patrón una vez
- DEPURACIÓN (?:p) sin captura
- -MO=Deparse (?#t) comentario CLASES CARACTERES EXP. REG.
- -MO=Terse (?=p) inspec. pos. hacia delante . [^\n]
- -D## (?!p) inspec. neg hacia delante \s espacio en blanco
- -d:Trace (?<=p) inspec. pos. hacia atrás \K \w caracteres palabra
- (?<!p) inspec. neg. hacia atrás \d dígitos
- CONFIGURACIÓN (?>p) sin vuelta atrás \pP propiedad con nombre
- perl -V:ivsize (?|p|p) reinicio bifurcación \h espacio en blanco horiz.
- (?<NM>) capturar en nombre \R salto de línea
- \S \W \D \H negar
+ | ^ METACARACTERES EXP. REG. MODIFICADORES EXP. REG.
+ && ^ principio cadena /i no distinguir may./min.
+ || // $ fin cadena (antes \n) /m basado en líneas ^$
+ .. ... + una o más /s . incluir \n
+ ?: * cero o más /x ignorar espacios
+ = += -= *= etc ? cero o una /p preservar
+ , => {3,7} repeticiones en rango /a ASCII /aa seguro
+ ops lista | alternancia /l config. reg. /d dual
+ not [] clase caracteres /u Unicode
+ and \b límite de palabra /e evaluar /ee reevaluar
+ or xor \z fin cadena /g global
+ () capturar /o compilar patrón una vez
+ DEPURACIÓN (?:p) sin captura
+ -MO=Deparse (?#t) comentario CLASES CARACTERES EXP. REG.
+ -MO=Terse (?=p) inspec. pos. delante . [^\n]
+ -D## (?!p) inspec. neg delante \s espacio en blanco
+ -d:Trace (?<=p) inspec. pos. atrás \K \w caracteres palabra
+ (?<!p) inspec. neg. atrás \d dígitos
+ CONFIGURACIÓN (?>p) sin vuelta atrás \pP propiedad con nombre
+ perl -V:ivsize (?|p|p) reinicio bifurcación \h espacio en blanco horiz.
+ (?<NM>) capturar en nombre \R salto de línea
+ \S \W \D \H negar
LISTAS RETORNO FUNCIONES
stat localtime caller VARIABLES ESPECIALES
0 dev 0 segundo 0 paquete $_ variable predeterminada
1 ino 1 minuto 1 nombre archivo $0 nombre programa
2 mode 2 hora 2 línea $/ separador entrada
- 3 nlink 3 día 3 subrutina $\ separador entrada
+ 3 nlink 3 día 3 subrutina $\ separador salida
4 uid 4 mes-1 4 hasargs $| volcado automático
5 gid 5 año-1900 5 wantarray $! error de sys/libcall
- 6 rdev 6 día semana 6 evaltext $@ error eval
- 7 size 7 día año 7 is_require $$ Id. proceso
- 8 atime 8 is_dst 8 hints $. número de línea
- 9 mtime 9 máscara bits @ARGV args línea comandos
- 10 ctime 10 hash de pistas @INC rutas de inclusión
- 11 blksz 3..10 solo @_ args subroutina
- 12 blcks con EXPR %ENV entorno
+ 6 rdev 6 día semana 6 evaltext $@ error eval
+ 7 size 7 día año 7 is_require $$ Id. proceso
+ 8 atime 8 is_dst 8 hints $. número de línea
+ 9 mtime 9 máscara bits @ARGV args línea comandos
+ 10 ctime 10 hash de pistas @INC rutas de inclusión
+ 11 blksz 3..10 solo @_ args subroutina
+ 12 blcks con EXPR %ENV entorno
=head1 AGRADECIMIENTOS
View
80 pod/translated/perlclib.pod
@@ -4,11 +4,11 @@ perlclib - Sustitutos internos de funciones de la biblioteca estándar de C
=head1 DESCRIPCIÓN
-Una cosa que los I<Perl porters> deben tener en cuenta es que F<perl> no tienden a utilizar internamente la mayor parte de la biblioteca estándar de C; verá muy poco uso de ella de, por ejemplo, las funciones F<ctype.h>. Esto se debe a que Perl tiende a reimplementar o abstraer funciones de la biblioteca estándar, y así sabemos exactamente cómo van a operar.
+Los miembros del equipo de desarrollo principal (I<Perl porters>) deben tener en cuenta que en F<perl> no se usa mucho la biblioteca estándar de C internamente; por ejemplo, F<ctype.h> se usa muy poco. Esto se debe a que en el desarrollo de Perl se ha seguido la tendencia de reimplementar o abstraer funciones de la biblioteca estándar, para controlar cómo van a funcionar exactamente.
-Esta es una tarjeta de referencia para las personas que están familiarizados con la biblioteca C y que quieren hacer cosas al estilo Perl; decirles qué funciones deben usar en lugar de las funciones de C más comunes.
+Este documento es una hoja de referencia para programadores que conocen la biblioteca de C y desean hacer las cosas al estilo de Perl. Indica las funciones que deben usar en lugar de las funciones de C de uso común.
-=head2 Congresos
+=head2 Convenciones
En las tablas siguientes:
@@ -36,9 +36,9 @@ C<sv>, C<av>, C<hv>, etc. representan variables de sus tipos respectivos.
=head2 Operaciones con archivos
-En lugar de las funciones de F<stdio.h> debe usar la capa de abstracción de Perl. En lugar de tipos C<FILE*> debe manipular tipos C<PerlIO*>. No hay que olvidar que con la nueva capa de abstracción PerlIO, los tipos C<FILE*> pueden incluso estar no disponibles. Vea también la documentación de C<perlapio> para obtener más información acerca de las siguientes funciones:
+En lugar de las funciones de F<stdio.h> debe usar la abstracción de capas de Perl. En lugar de tipos C<FILE*> debe manipular tipos C<PerlIO*>. No olvide que con PerlIO, la nueva abstracción de E/S en capas, los tipos C<FILE*> podrían no estar disponibles. Vea también la documentación de C<perlapio> para obtener más información acerca de las siguientes funciones:
- En lugar de: Use:
+ En lugar de: Use:
stdin PerlIO_stdin()
stdout PerlIO_stdout()
@@ -49,9 +49,9 @@ En lugar de las funciones de F<stdio.h> debe usar la capa de abstracción de Per
fflush(stream) PerlIO_flush(perlio)
fclose(stream) PerlIO_close(perlio)
-=head2 Entrada y salida de archivo
+=head2 Entrada/salida de archivo
- En lugar de: Use:
+ En lugar de: Use:
fprintf(stream, fmt, ...) PerlIO_printf(perlio, fmt, ...)
@@ -59,7 +59,7 @@ En lugar de las funciones de F<stdio.h> debe usar la capa de abstracción de Per
[f]putc(stream, n) PerlIO_putc(perlio, n)
ungetc(n, stream) PerlIO_ungetc(perlio, n)
-Nótese que los equivalentes de PerlIO C<fread> y C<fwrite> son ligeramente diferentes de sus homólogos de la biblioteca de C:
+Tenga en cuenta que en PerlIO las funciones equivalentes a C<fread> y C<fwrite> son ligeramente distintas de sus homólogas de la biblioteca de C:
fread(p, size, n, stream) PerlIO_read(perlio, buf, numbytes)
fwrite(p, size, n, stream) PerlIO_write(perlio, buf, numbytes)
@@ -72,7 +72,7 @@ No existe nada equivalente a C<fgets>; en su lugar, debe usar C<sv_gets>:
=head2 Posición en archivo
- En lugar de: Use:
+ En lugar de: Use:
feof(stream) PerlIO_eof(perlio)
fseek(stream, n, whence) PerlIO_seek(perlio, n, whence)
@@ -86,28 +86,28 @@ No existe nada equivalente a C<fgets>; en su lugar, debe usar C<sv_gets>:
=head2 Administración de memoria y manipulación de cadenas
- En lugar de: Use:
+ En lugar de: Use:
- t* p = malloc(n) Newx(id, p, n, t)
- t* p = calloc(n, s) Newxz(id, p, n, t)
- p = realloc(p, n) Renew(p, n, t)
- memcpy(dst, src, n) Copy(src, dst, n, t)
- memmove(dst, src, n) Move(src, dst, n, t)
- memcpy(dst, src, sizeof(t)) StructCopy(src, dst, t)
- memset(dst, 0, n * sizeof(t)) Zero(dst, n, t)
- memzero(dst, 0) Zero(dst, n, char)
- free(p) Safefree(p)
+ t* p = malloc(n) Newx(id, p, n, t)
+ t* p = calloc(n, s) Newxz(id, p, n, t)
+ p = realloc(p, n) Renew(p, n, t)
+ memcpy(dst, src, n) Copy(src, dst, n, t)
+ memmove(dst, src, n) Move(src, dst, n, t)
+ memcpy(dst, src, sizeof(t)) StructCopy(src, dst, t)
+ memset(dst, 0, n * sizeof(t)) Zero(dst, n, t)
+ memzero(dst, 0) Zero(dst, n, char)
+ free(p) Safefree(p)
- strdup(p) savepv(p)
- strndup(p, n) savepvn(p, n) (¡Eh, strndup no existe!)
+ strdup(p) savepv(p)
+ strndup(p, n) savepvn(p, n) (Atención: strndup no existe)
- strstr(big, little) instr(big, little)
- strcmp(s1, s2) strLE(s1, s2) / strEQ(s1, s2) / strGT(s1,s2)
- strncmp(s1, s2, n) strnNE(s1, s2, n) / strnEQ(s1, s2, n)
+ strstr(big, little) instr(big, little)
+ strcmp(s1, s2) strLE(s1, s2) / strEQ(s1, s2) / strGT(s1,s2)
+ strncmp(s1, s2, n) strnNE(s1, s2, n) / strnEQ(s1, s2, n)
-Observe el diferente orden de los argumentos de C<Copy> y C<Move> de los que se usan en C<memcpy> y C<memmove>.
+Observe que el orden de los argumentos de C<Copy> y C<Move> es distinto del de los argumentos de C<memcpy> y C<memmove>.
-La mayoría de las veces, sin embargo, querrá estar tratando con SV internamente en lugar de con crudas cadenas de caracteres C<char *>:
+Sin embargo, generalmente deseará manipular valores SV internamente, en lugar de manipular cadenas C<char *> sin procesar:
strlen(s) sv_len(sv)
strcpy(dt, src) sv_setpv(sv, s)
@@ -116,20 +116,20 @@ La mayoría de las veces, sin embargo, querrá estar tratando con SV internament
strncat(dt, src) sv_catpvn(sv, s)
sprintf(s, fmt, ...) sv_setpvf(sv, fmt, ...)
-Tenga en cuenta también la existencia de C<sv_catpvf> y C<sv_vcatpvfn> , que combina la concatenación con el formateo.
+Tenga en cuenta que también están disponibles C<sv_catpvf> y C<sv_vcatpvfn>, que combinan la concatenación con la aplicación de formato.
-A veces, en lugar de poner a cero el montón asignado mediante el uso de Newxz() podría considerar el caso del "envenenamiento" de datos. Esto significa escribir un patrón de bits dentro de él, que debería formar punteros (y números de punto flotante) ilegales, y también esperamos algo lo suficientemente sorprendente, como números enteros, de modo que cualquier código de intente utilizar esos datos sin precaución se rompa lo más pronto posible. El envenenamiento puede hacerse utilizando las macros Poison(), que tienen argumentos similares a Zero():
+A veces, en lugar de inicializar en cero el montículo (I<heap>) asignado mediante Newxz(), podría preferir la opción de "envenenar" los datos. El envenenamiento de datos consiste en escribir en los datos un patrón de bits que no que sean válidos como punteros (ni como números de punto flotante), ni (esperamos que de forma sorprendente) como enteros, a fin de que todo código que intente usar los datos sin la preparación necesaria genere un error cuanto antes. El envenenamiento se puede realizar mediante las macros Poison(), que tienen argumentos similares a los de Zero():
- PoisonWith(dst, n, t, b) garabatea la memoria con el byte b
- PoisonNew(dst, n, t) igual a PoisonWith(dst, n, t, 0xAB)
- PoisonFree(dst, n, t) igual a PoisonWith(dst, n, t, 0xEF)
- Poison(dst, n, t) igual a PoisonFree(dst, n, t)
+ PoisonWith(dst, n, t, b) "garabatea" el byte b en la memoria
+ PoisonNew(dst, n, t) igual que PoisonWith(dst, n, t, 0xAB)
+ PoisonFree(dst, n, t) igual que PoisonWith(dst, n, t, 0xEF)
+ Poison(dst, n, t) igual que PoisonFree(dst, n, t)
=head2 Pruebas de clases de caracteres
-Hay dos tipos de pruebas de clases de caracteres que Perl implementa: un tipo maneja C<char> y por tanto B<no> son compatibles con Unicode (y por lo tanto, obsoletas a menos que B<sepa> que debe usarlas) y el otro tipo maneja los C<UV> y conoce las propiedades Unicode. En la tabla siguiente, C<c> es un C<char> y C<u> es un código de carácter Unicode.
+Perl implementa dos tipos de pruebas de clases de caracteres: las de un tipo usan variables C<char> y, por tanto, B<no> son compatibles con Unicode (y, en consecuencia, son obsoletas a menos que B<esté seguro> de que debe usarlas) y las del otro tipo usan variables C<UV> y saben lo que son las propiedades Unicode. En la tabla siguiente, C<c> es un C<char> y C<u> es un código de carácter Unicode.
- En lugar de: Use: O mejor:
+ En lugar de: Use: O mejor:
isalnum(c) isALNUM(c) isALNUM_uni(u)
isalpha(c) isALPHA(c) isALPHA_uni(u)
@@ -148,31 +148,31 @@ Hay dos tipos de pruebas de clases de caracteres que Perl implementa: un tipo ma
=head2 Funciones de F<stdlib.h>
- En lugar de: Use:
+ En lugar de: Use:
atof(s) Atof(s)
atol(s) Atol(s)
- strtod(s, &p) Ninguno. No la use.
+ strtod(s, &p) Ninguna. No la use.
strtol(s, &p, n) Strtol(s, &p, n)
strtoul(s, &p, n) Strtoul(s, &p, n)
-Tenga en cuenta también las funciones C<grok_bin>, C<grok_hex> y C<grok_oct> en F<numeric.c> para convertir cadenas que representan números en sus respectivas bases dentro de los C<NV>.
+También están disponibles las funciones C<grok_bin>, C<grok_hex> y C<grok_oct> de F<numeric.c> para convertir cadenas que representan números en sus respectivas bases en valores C<NV>.
-En teoría C<Strtol> y C<Strtoul> pueden no estar definidas si la máquina que contiene el perl compilado en realidad no tiene a strtol y strtoul. Pero como esas 2 funciones son parte de la especificación 1989 ANSI C, sospechamos que, por ahora, las encontrará en todas partes.
+En teoría, C<Strtol> y C<Strtoul> no se pueden definir si el equipo en el que se ha compilado perl no dispone de strtol y strtoul. Pero como estas dos funciones forman parte de la especificación de ANSI C del año 1989, sospechamos que actualmente estarán disponibles en todas partes.
int rand() double Drand01()
srand(n) { seedDrand01((Rand_seed_t)n);
PL_srand_called = TRUE; }
exit(n) my_exit(n)
- system(s) No. Mire pp_system o use my_popen
+ system(s) No la use. Vea pp_system o use my_popen
getenv(s) PerlEnv_getenv(s)
setenv(s, val) my_putenv(s, val)
=head2 Funciones varias
-Ni siquiera debería B<querer> usar las funciones F<setjmp.h>, pero si piensa hacerlo, utilice en su lugar la pila C<JMPENV> de F<scope.h>.
+B<Ni se le ocurra> usar las funciones de F<setjmp.h>. Si esto no le disuade de sus intenciones, al menos plantéese usar la pila C<JMPENV> de F<scope.h> en su lugar.
Para C<signal>/C<sigaction>, use C<rsignal(signo, handler)>.
View
4 pod/translated/perlfaq1.pod
@@ -43,7 +43,7 @@ Si todo funciona bien, la situación puede cambiar al actualizar perl (como mín
=item *
-Las versiones más recientes de Perl incorporan más correcciones de errores.
+Las versiones más recientes de perl incorporan más correcciones de errores.
=item *
@@ -189,7 +189,7 @@ Es posible que estos vínculos le resulten de utilidad:
=head1 AUTOR Y COPYRIGHT
-Copyright (c) 1997-2010 Tom Christiansen, Nathan Torkington y otros autores indicados. Reservados todos los derechos.
+Copyright (c) 1997-2010 Tom Christiansen, Nathan Torkington y otros autores indicados. Todos los derechos reservados.
Esta documentación es libre; puede redistribuirla o modificarla en los mismos términos que Perl.
View
4 pod/translated/perlfaq2.pod
@@ -147,13 +147,13 @@ Para determinar si un módulo está incluido en su versión de Perl, puede usar
Todo módulo de CPAN tiene un sistema de seguimiento de errores configurado en RT, L<http://rt.cpan.org>.
Puede enviar informes de error a RT a través de su interfaz web o por correo electrónico. Para notificar un informe de error, envíe un mensaje de correo electrónico a
-bug-E<lt>nombre-distribuciónE<gt>@rt.cpan.org . Por ejemplo, si desea notificar un error de L<Business::ISBN>, debe enviar un mensaje a bug-Business-ISBN@rt.cpan.org .
+L<bug-E<lt>nombre-distribuciónE<gt>@rt.cpan.org>. Por ejemplo, si desea notificar un error de L<Business::ISBN>, debe enviar un mensaje a L<bug-Business-ISBN@rt.cpan.org>.
Es posible que algunos módulos tengan requisitos de notificación específicos, como usar un sistema de seguimiento de errores de Github o Google Code, por lo que es recomendable consultar también la documentación de los módulos.
=head1 AUTOR Y COPYRIGHT
-Copyright (c) 1997-2010 Tom Christiansen, Nathan Torkington y otros autores indicados. Reservados todos los derechos.
+Copyright (c) 1997-2010 Tom Christiansen, Nathan Torkington y otros autores indicados. Todos los derechos reservados.
Esta documentación es libre; puede redistribuirla o modificarla en los mismos términos que Perl.
View
4 pod/translated/perlfunc.pod
@@ -5894,7 +5894,7 @@ El C<BEGIN> fuerza a ejecutar a C<require> e C<import> en tiempo de compilación
Si no desea llamar al método C<import> del paquete (por ejemplo, para impedir que su espacio de nombres sea alterado), indique, de manera explícita, una lista vacía:
- use Módulo ();
+ use Modulo ();
Eso es exactamente equivalente a
@@ -6424,7 +6424,7 @@ Estas palabras clave de control de flujo están documentadas en L<perlsyn/"Instr
=over
-=item default
+=item valor predeterminado
=item given
View
289 pod/translated/perlglossary.pod
@@ -13,7 +13,7 @@ Otras fuentes útiles son: Free On-Line Dictionary of Computing L<http://foldoc.
=item métodos de acceso
-Un L</método> se usa para actualizar o inspeccionar indirectamente el estado de un L</objeto> (sus L<variables de instancia|/variable de instancia>).
+L<Método|/método> que se usa para actualizar o inspeccionar de forma indirecta el estado de un L</objeto> (sus L<variables de instancia|/variable de instancia>).
=item argumentos reales
@@ -34,7 +34,7 @@ Apodo de algo, que se comporta en todos los sentidos como si se usara el nombre
=item 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: C<|>. En expresiones Perl normales, las alternativas se separan mediante una doble barra vertical: C<||>. En expresiones L<booleanas|/Booleano>, las alternativas lógicas se separan mediante C<||> o C<or>.
+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: C<|>. En expresiones Perl normales, las alternativas se separan mediante una doble barra vertical: C<||>. En expresiones L<booleanas|/booleano>, las alternativas lógicas se separan mediante C<||> u C<or>.
=item anónimo
@@ -43,16 +43,16 @@ Se usa para describir un L</referente> que no es directamente accesible a travé
=item 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 programas escritos en otros lenguajes, como C, que se compilan a código máquina. Vea también L</plataforma> y L</sistema operativo>.
+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 L</plataforma> y L</sistema operativo>.
=item argumento
-Elementos de datos que se suministra a L<programa|/archivo ejecutable>,
-L</subrutina>, L</función> o L</método> para indicarle qué debe hacer. También se denomina "parámetro".
+Elementos de datos que se suministra a un L<programa|/archivo ejecutable>,
+una L</subrutina>, una L</función> o un L</método> para indicarle qué debe hacer. También se denomina "parámetro".
=item ARGV
-El nombre del array que contiene el L</vector> de L</argumento>s de la línea de comandos. Si usa el operador C<< E<lt>E<gt> >> vacío, L</ARGV> es el nombre tanto del L</identificador de archivo> que se usa para recorrer los argumentos como del L</escalar> que contiene el nombre del archivo de entrada actual.
+Nombre del array que contiene el L</vector> de L<argumentos|/argumento> de la línea de comandos. Si usa el operador C<< E<lt>E<gt> >> vacío, L</ARGV> es el nombre tanto del L</identificador de archivo> que se usa para recorrer los argumentos como del L</escalar> que contiene el nombre del archivo de entrada actual.
=item operador aritmético
@@ -74,12 +74,12 @@ Se suele usar de manera informal para describir los primeros 128 valores de los
=item aserción
-Componente de una L</expresión regular> que debe ser verdadero para que el patrón coincida, pero que no tiene por qué coincidir con ningún carácter necesariamente.
+Componente de una L</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 L</ancho cero>.
=item asignación
-Un L</operador> cuya misión en la vida es cambiar el valor de una L</variable>.
+L<Operador|/operador> cuya misión en la vida es cambiar el valor de una L</variable>.
=item operador de asignación
@@ -104,7 +104,7 @@ Componente de L</expresión regular> que puede coincidir con una L</subcadena> d
=item operación atómica
-Cuando Demócrito llamó "átomo" a los bits indivisibles de la materia, quería decir literalmente algo que no se puede dividir: I<a->(no) + I<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.
+Cuando Demócrito llamó "átomo" a las partes indivisibles de la materia, quería decir literalmente algo que no se puede dividir: I<a->(no) + I<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.
=item atributo
@@ -136,7 +136,7 @@ Abreviatura de "array value" (valor de array), que hace referencia a uno de los
=item 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 derivo algunas de sus ideas de alto nivel.
+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.
=back
@@ -162,7 +162,7 @@ Palabra lo suficientemente ambigua como para no ser considerada válida cuando s
=item clase base
-Un tipo de L</objeto> L</array>; es decir, una L</clase> de la que se derivan genéticamente otras clases más específicas mediante L</herencia>. Las personas que respetan a sus antepasados también la denominan "superclases".
+Tipo de L</objeto> genérico; es decir, una L</clase> de la que se derivan genéticamente otras clases más específicas mediante L</herencia>. Las personas que respetan a sus antepasados también la denominan "superclases".
=item big-endian
@@ -170,11 +170,11 @@ Según Swift, alguien que empieza a comer un huevo por su extremo más ancho (ju
=item 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 L</Unicode>, esta distinción, ya de por sí sospechosa, ///loses even more of its meaning.
+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 L</Unicode>, esta distinción, ya de por sí sospechosa, tiene aún menos sentido.
=item operador binario
-Un L</operador> que consume dos L<operandos|/operando>.
+L<Operador|/operador> que consume dos L<operandos|/operando>.
=item enlazar
@@ -182,7 +182,7 @@ Asignar una L</dirección de red> específica a un L</socket>.
=item bit
-Un entero en el intervalo de 0 a 1, ambos incluidos. La unidad de almacenamiento de información más pequeñas posible. Un octavo de un L</byte> o de un dólar.
+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 L</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).
@@ -194,11 +194,11 @@ Movimiento de bits hacia la izquierda o la derecha en una palabra de procesador,
Secuencia de L<bits|/bit> que, por una vez, se puede considerar una secuencia de bits.
-=item bless
+=item 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 L</referente> para que pueda funcionar como un L</objeto> (por ejemplo, un objeto WebCruncher). Vea L<perlfunc/"bless">.
-=item bloque
+=item bloqueo-bloque
Lo que un L</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 L</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.
@@ -211,11 +211,11 @@ A veces también usamos la palabra "bloque" para hacer referencia a un ámbito l
Método para lograr una entrada y salida eficiente pasando un L<bloque|/bloqueo-bloque> cada vez. De manera predeterminada, Perl realiza el almacenamiento en búfer de bloques en archivos de disco. Vea L</búfer> y L</almacenamiento en búfer de comandos>.
-=item Booleano
+=item booleano
-Un valor que es L</verdadero> o L</falso>.
+Valor que es L</verdadero> o L</falso>.
-=item Contexto booleano
+=item contexto booleano
Tipo especial de L</contexto escalar> que se usa en expresiones condicionales para decidir
si el L</valor escalar> devuelto por una expresión es L</verdadero> o
@@ -239,15 +239,15 @@ Ubicación de una L</tabla hash> que puede contener varias entradas cuyas claves
=item búfer
-Una ubicación para el almacenamiento temporal de datos. El L</almacenamiento en búfer de bloques> significa que los datos se pasan a su destino cuando se llena el búfer. El L</almacenamiento en búfer de líneas> significa que se pasa el contenido siempre que se recibe una línea completa. El L</almacenamiento en búfer de comandos> significa que los datos se pasan cada vez que se ejecuta un comando L<print|perlfunc/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.
+Ubicación para el almacenamiento temporal de datos. El L</almacenamiento en búfer de bloques> significa que los datos se pasan a su destino cuando se llena el búfer. El L</almacenamiento en búfer de líneas> significa que se pasa el contenido siempre que se recibe una línea completa. El L</almacenamiento en búfer de comandos> significa que los datos se pasan cada vez que se ejecuta un comando L<print|perlfunc/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.
=item elemento predefinido
-Una L</función> que está predefinida en el lenguaje. Incluso cuando se oculta L<sobrescribiendo|/sobrescribir>, siempre se puede obtener una función predefinida usando su L</nombre completo> (completándolo con el seudopaquete C<CORE::>).
+L<Función|/función> predefinida del lenguaje. Incluso cuando se oculta L<sobrescribiendo|/sobrescribir>, siempre se puede obtener una función predefinida usando su L</nombre completo> (completándolo con el seudopaquete C<CORE::>).
=item conjunto
-Grupo de módulos de L</CPAN> relacionados. (También puede referirse a un grupo de modificadores de línea de comandos agrupados en un L</grupo de modificadores>).
+Conjunto de módulos de L</CPAN> relacionados. (También puede referirse a un grupo de modificadores de línea de comandos agrupados en un L</grupo de modificadores>).
=item byte
@@ -268,7 +268,7 @@ Lenguaje tipo pidgin que hablan los androides cuando no desean revelar su orient
Lenguaje muy querido por muchos programadores por su definiciones de L<tipos|/tipo> I<inside-out>, sus reglas de L</precedencia> inescrutables y la intensa L<sobrecarga|/sobrecargar> 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.
-=item C preprocesador
+=item preprocesador de C
El primer barrido típico del compilador de C, que procesa las líneas que empiezan por C<#> 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 I<cpp>(1).
@@ -296,7 +296,7 @@ Estos dos términos son sinónimos: es una L<subcadena capturada|/capturar> por
=item capturar
Escribir un L</subpatrón> entre paréntesis en una L</expresión regular> para almacenar la L</subcadena> detectada como una L</retrorreferencia> o un L<grupo de captura|/búfer de captura, grupo de captura>.
-(Las cadenas capturadas también se devuelven como una lista en L</contexto de lista>.)
+(Las cadenas capturadas también se devuelven como una lista en L</contexto de lista>).
=item carácter
@@ -310,7 +310,7 @@ En un sentido informal, cualquier conjunto de caracteres predefinido que se use
=item propiedad de carácter
-Una L</clase de caracteres> que se puede detectar mediante el
+L<Clase de caracteres|/clase de caracteres> que se puede detectar mediante el
L</metasímbolo> C<\p>. Hay muchas propiedades estándar definidas para L</Unicode>.
=item operador envolvente
@@ -319,11 +319,11 @@ L<Operador|/operador> que rodea al L</operando>, como el operador de corchetes a
=item clase
-Un L</tipo> definido por el usuario, implementado en Perl mediante un L</paquete> que proporciona (de forma directa o mediante herencia) L<métodos|/método> (es decir, L<subrutinas|/subrutina>) para controlar L<instancias|/instancia> de la clase (sus L<objetos|/objeto>). Vea también L</herencia>.
+L<Tipo|/tipo> definido por el usuario, implementado en Perl mediante un L</paquete> que proporciona (de forma directa o mediante herencia) L<métodos|/método> (es decir, L<subrutinas|/subrutina>) para controlar L<instancias|/instancia> de la clase (sus L<objetos|/objeto>). Vea también L</herencia>.
=item método de clase
-Un L</método> cuyo L</invocante> es un nombre de L</paquete>, no una referencia a L</objeto>. Un método asociado con la clase como un todo.
+L<Método|/método> cuyo L</invocante> es un nombre de L</paquete>, no una referencia a L</objeto>. Un método asociado a la clase como un todo.
=item cliente
@@ -331,11 +331,11 @@ En contexto de redes, es un L</proceso> que inicia el contacto con un proceso de
=item claustro
-Un L</clúster> usado para restringir el ámbito de un L</modificador de expresión regular>.
+L<Clúster|/clúster> usado para restringir el ámbito de un L</modificador de expresión regular>.
-=item cierre
+=item clausura
-Subrutina L<anónima|/anónimo> tal que, cuando se genera una referencia a ella en tiempo de ejecución, hace un seguimiento de las identidades de L<variables léxicas|/variable léxica> visibles externamente, incluso después de que dichas variables léxicas se salgan del L</ámbito>. Se llaman "clausuras" porque este tipo de comportamiento proporciona a los matemáticos una sensación de clausura.
+Subrutina L<anónima|/anónimo> tal que, cuando se genera una referencia a ella en tiempo de ejecución, hace un seguimiento de las identidades de L<variables léxicas|/variable léxica> visibles externamente, incluso después de que dichas variables léxicas se salgan del L</ámbito>. Se llaman "clausuras" porque este tipo de comportamiento proporciona a los matemáticos una sensación de clausura, o cierre.
=item clúster
@@ -343,7 +343,7 @@ L<Subpatrón|/subpatrón> escrito entre paréntesis que se usa para agrupar part
=item CODE
-La palabra devuelta por la función L<ref|perlfunc/ref> cuando se aplica a una referencia a una subrutina. Vea también L</CV>.
+La palabra devuelta por la función L<ref|perlfunc/ref> cuando se aplica a una referencia a una subrutina. Significa "código". Vea también L</CV>.
=item generador de código
@@ -351,19 +351,17 @@ Sistema que escribe código automáticamente en un lenguaje de bajo nivel; por e
=item código de carácter
-La posición de un carácter en una codificación de un conjunto de caracteres. El carácter C<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. The code point for the C<SPACE>
-character in the ASCII character set is 0x20, or 32 decimal; in EBCDIC
-it is 0x40, or 64 decimal. La función L<ord|perlfunc/ord> devuelve el código de carácter de un carácter.
+La posición de un carácter en la codificación de un conjunto de caracteres. El carácter C<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 C<ESPACIO> en el juego de caracteres ASCII es 0x20, o 32 decimal; en EBCDIC es 0x40, o 64 decimal. La función L<ord|perlfunc/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".
=item subpatrón de código
-Subpatrón de L</expresión regular> cuyo propósito real es ejecutar código Perl, como por ejemplo, los subpatrones C<(?{...})> y C<(??{...})>.
+Subpatrón de L</expresión regular> cuyo propósito real es ejecutar código Perl, como por ejemplo los subpatrones C<(?{...})> y C<(??{...})>.
=item secuencia de intercalación
-El orden en que se ordenan los L<caracteres|/carácter>. Se usa en rutinas de comparación de L<cadenas|/cadena> para decidir, por ejemplo, en qué parte de este glosario debe ir "secuencia de intercalación".
+Orden en que se ordenan los L<caracteres|/carácter>. Se usa en rutinas de comparación de L<cadenas|/cadena> para decidir, por ejemplo, en qué parte de este glosario debe ir "secuencia de intercalación".
=item comando
@@ -371,7 +369,7 @@ En programación de L</shell>, la combinación sintáctica de un nombre de progr
=item almacenamiento en búfer de comandos
-Mecanismo de Perl que permite almacenar la salida de cada L</comando> de Perl y después volcarlo como una sola solicitud al L</sistema operativo>. Para habilitarlo se establece la variable C<$|> (C<$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 L</archivo> o una L</conexión de barra vertical> se usa L</almacenamiento en búfer de bloques> de manera predeterminada.
+Mecanismo de Perl que permite almacenar la salida de cada L</comando> de Perl y después volcarlo como una sola solicitud al L</sistema operativo>. Para habilitarlo se establece la variable C<$|> (C<$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 L</archivo> o una L</tubería> se usa L</almacenamiento en búfer de bloques> de manera predeterminada.
=item nombre de comando
@@ -379,7 +377,7 @@ El nombre del programa que se está ejecutando actualmente, tal como se escribi
=item argumentos de línea de comandos
-Los L<valores|/valor> que se suministran con un nombre de programa para indicar a la L</shell> que debe ejecutar un L</comando>. Estos valores se pasan como un programa Perl a través de C<@ARGV>.
+Los L<valores|/valor> que se suministran con un nombre de programa para indicar a la L</shell> que debe ejecutar un L</comando>. Estos valores se pasan a un programa Perl a través de C<@ARGV>.
=item comentario
@@ -400,7 +398,7 @@ Tiempo en el que Perl intenta entender el código, en contraste con el L</tiempo
=item 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 de I<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 (L<árboles de sintaxis|/árbol de sintaxis>) dentro del mismo proceso de I<perl> para que el L</intérprete> lo interprete a continuación. Sin embargo, existen L<módulos|/módulo> de extensión que hacen que Perl se parezca más a un compilador "real". Vea L<O>.
+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 I<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 (L<árboles de sintaxis|/árbol de sintaxis>) dentro del mismo proceso de I<perl> para que el L</intérprete> lo interprete a continuación. Sin embargo, existen L<módulos|/módulo> de extensión que hacen que Perl se parezca más a un compilador "real". Vea L<O>.
=item sistema de composición
@@ -431,7 +429,7 @@ A veces usamos este término de forma informal para referirnos a un L</sistema d
=item 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 L</expresión> concreta devuelva. Los tres contextos principales son L</contexto de lista>, L</contexto escalar> y L</contexto vacío>. A veces, el contexto escalar se subdivide en L</contexto Booleano>, L</contexto numérico>, L</contexto de cadena> y L</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).
+El entorno (o los alrededores). El contexto proporcionado por el código del entorno determina el tipo de datos que se espera que una L</expresión> concreta devuelva. Los tres tipos de contexto principales son L</contexto de lista>, L</contexto escalar> y L</contexto vacío>. A veces, el contexto escalar se subdivide en L</contexto booleano>, L</contexto numérico>, L</contexto de cadena> y L</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).
=item continuación
@@ -500,11 +498,11 @@ L<Aserción|/aserción> que declara que algo existe y que también puede describ
Restar un valor de una variable, como en "decrementar C<$x>" (significa restar 1 de su valor) o "decrementar C<$x> en 3 unidades".
-=item default
+=item valor predeterminado
L<Valor|/valor> elegido automáticamente si no se proporciona un valor.
-=item defined
+=item 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 L</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 L</falso> y L<perlfunc/defined>.
@@ -514,7 +512,7 @@ L<Carácter|/carácter> o L</cadena> que establece límites en un objeto de text
=item módulos y características obsoletos
-Las características y los módulos obsoletos son lo que en su momento formaron parte de una versión estable y que tienen algún defecto sutil, por lo que es aconsejable evitarlos.
+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 B<-w> o C<use diagnostics> se muestran advertencias de elementos obsoletos, y también se publican avisos en los documentos L<perldelta> y en otros documentos POD. Algunas prácticas de programación que hacen un uso incorrecto de características, como C<my $foo if 0>, también pueden quedar obsoletas.
=item desreferenciar
@@ -523,7 +521,7 @@ Término informático sofisticado que significa "seguir una L</referencia> hasta
=item clase derivada
-Una L</clase> que define alguno de sus L<métodos|/método> en términos de una clase más genérica, denominada L</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,
+L<Clase|/clase> que define alguno de sus L<métodos|/método> en términos de una clase más genérica, denominada L</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.
=item descriptor
@@ -536,7 +534,7 @@ Anular la asignación de memoria de un L</referente> (antes se desencadena su m
=item destructor
-Un L</método> especial que se llama cuando un L</objeto> piensa en L<destruirse|/destruir>. En realidad, el método C<DESTROY> de un programa Perl no se encarga de la destrucción; Perl solo L<desencadena|/desencadenador> el método en caso de que la L</clase> desee realizar alguna limpieza asociada.
+L<Método|/método> especial que se llama cuando un L</objeto> desea L<destruirse|/destruir>. En realidad, el método C<DESTROY> de un programa Perl no se encarga de la destrucción; Perl solo L<desencadena|/desencadenador> el método en caso de que la L</clase> desee realizar alguna limpieza asociada.
=item dispositivo
@@ -545,11 +543,11 @@ En Unix, estos archivos simulados se encuentran en el directorio I</dev>.
=item directiva
-Una directiva L</pod>. Vea L<perlpod>.
+Directiva L</pod>. Vea L<perlpod>.
=item directorio
-Archivo especial que contiene otros archivos. Algunos L<sistemas operativo|/sistema operativo> llaman a estos archivos "carpetas", "cajones", o "catálogos".
+Archivo especial que contiene otros archivos. Algunos L<sistemas operativos|/sistema operativo> llaman a estos archivos "carpetas", "cajones" o "catálogos".
=item identificador de directorio
@@ -561,7 +559,7 @@ Enviar algo a su destino correcto. Normalmente se usa como metáfora para indic
=item distribución
-Una 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".
+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".
=item módulos quitados (o que se van a quitar)
@@ -593,7 +591,7 @@ Derivado de muchas fuentes. Hay quien piense que de I<demasiadas>.
=item elemento
-Un componente básico. Cuando se refiere a un L</array>, es uno de los elementos que forman el array.
+Componente básico. Cuando se refiere a un L</array>, es uno de los elementos que forman el array.
=item incrustar
@@ -601,11 +599,11 @@ Insertar algo dentro de otra cosa, especialmente cuando se puede considerar sorp
=item lista vacía
-Vea </lista nula>.
+Vea L</lista nula>.
=item prueba de subclase vacía
-La noción de que una L</clase derivada vacía> debe comportarse exactamente igual que su L</clase base>.
+La noción de que una L</clase derivada> vacía debe comportarse exactamente igual que su L</clase base>.
=item en passant
@@ -658,7 +656,7 @@ Abandonar el programa del L</proceso> actual y reemplazarlo por otro sin salir d
=item archivo ejecutable
-L<Archivo|/archivo> con una marca especial que indica al </sistema operativo> que se puede ejecutar como un programa. Se suele usar la forma abreviada, "ejecutable".
+L<Archivo|/archivo> con una marca especial que indica al L</sistema operativo> que se puede ejecutar como un programa. Se suele usar la forma abreviada "ejecutable".
=item ejecutar
@@ -694,7 +692,7 @@ Módulo Perl que también usa código C o C++ compilado. De manera más general
=item falso
-En Perl, cualquier valor equivalente a C<""> o C<"0"> si se evalúa en contexto de cadena. Puesto que los valores indefinidos se evalúan como C<"">, todos los valores indefinidos son falsos (incluida la L</lista nula>), pero no todos los valores falsos son indefinidos.
+En Perl, cualquier valor equivalente a C<""> o C<"0">, si se evalúa en contexto de cadena. Puesto que los valores indefinidos se evalúan como C<"">, todos los valores indefinidos son falsos (incluida la L</lista nula>), pero no todos los valores falsos son indefinidos.
=item P+F
@@ -702,7 +700,7 @@ Preguntas más frecuentes (aunque no necesariamente frecuentemente contestadas,
=item error irrecuperable
-Una L</excepción> no captura que hace que el L</proceso> finalice tras imprimir un mensaje en la secuencia de L</error estándar>. Los errores que se producen dentro de una función L<eval|perlfunc/eval> no son irrecuperables. La función L<eval|perlfunc/eval> termina después de colocar el mensaje de excepción en la variable C<$@> (C<$EVAL_ERROR>). Puede intentar provocar un error irrecuperable con el operador L<die|perlfunc/die> (lo que se conoce como desencadenar o provocar una excepción), pero esto puede ser capturado mediante un operador L<eval|perlfunc/eval> aplicado dinámicamente. Si no se captura, la llamada a L<die|perlfunc/die> se convierte en un error irrecuperable.
+Una L</excepción> no capturada que hace que el L</proceso> finalice tras imprimir un mensaje en la secuencia de L</error estándar>. Los errores que se producen dentro de una función L<eval|perlfunc/eval> no son irrecuperables. La función L<eval|perlfunc/eval> termina después de colocar el mensaje de excepción en la variable C<$@> (C<$EVAL_ERROR>). Puede intentar provocar un error irrecuperable con el operador L<die|perlfunc/die> (lo que se conoce como desencadenar o provocar una excepción), pero esto puede ser capturado mediante un operador L<eval|perlfunc/eval> aplicado dinámicamente. Si no se captura, la llamada a L<die|perlfunc/die> se convierte en un error irrecuperable.
=item campo
@@ -710,7 +708,7 @@ Elemento individual de datos numéricos o de cadena que forma parte de una L</ca
=item FIFO
-First In, First Out (el primero que entra es el primero que sale). Vea también L</LIFO>. También es un apodo de L</canalización con nombre>.
+First In, First Out (el primero que entra es el primero que sale). Vea también L</LIFO>. También es un apodo de L</tubería con nombre>.
=item archivo
@@ -718,7 +716,7 @@ Conjunto de datos con nombre que suele estar almacenado en disco, dentro de un L
=item descriptor de archivo
-El número que el L</sistema operativo> usa para controlar a qué L</archivo> abierto se refiere. Perl oculta el descriptor de archivo dentro de una secuencia de L</EE<sol>S estándar> y después asocia la secuencia a un L</identificador de archivo>.
+El número que el L</sistema operativo> usa para controlar a qué L</archivo> abierto se refiere. Perl oculta el descriptor de archivo dentro de una secuencia de L</EE<sol>S estándar> y asocia la secuencia a un L</identificador de archivo>.
=item operador de prueba de archivo
@@ -738,7 +736,7 @@ Identificador que se asigna a un archivo. Este nombre se muestra en un L</direc
=item sistema de archivos
-Conjunto de L<directorios|/directorio> y L<archivos|/archivo> 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.
+Conjunto de L<directorios|/directorio> y L<archivos|/archivo> 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).
=item filtro
@@ -746,27 +744,27 @@ Programa que consume una L</secuencia> de entrada y la transforma en una secuenc
=item 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 B<-n> y B<-p> de perl) o, de forma menos frecuente, un indicador de un solo bit (como las marcas C<O_CREAT> y C<O_EXCL> que se usan en L<sysopen|perlfunc/sysopen>).
+Normalmente evitamos usar este término porque tiene muchos significados posibles. Puede ser un L</modificador> de línea de comandos que no consume ningún argumento (como las marcas B<-n> y B<-p> de perl) o, de forma menos frecuente, un indicador de un solo bit (como las marcas C<O_CREAT> y C<O_EXCL> que se usan en L<sysopen|perlfunc/sysopen>).
=item punto flotante
-Método de almacenar números en "notación científica" en el que la precisión del número es independente de su magnitud (el punto decimal "flota"). Perl hace sus cálculos numéricos con números de punto flotante cuando no puede usar L<enteros|/entero> para ello. Los números de punto flotante son meras aproximaciones de los números reales.
+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 L<enteros|/entero> para ello. Los números de punto flotante son meras aproximaciones de los números reales.
=item vaciar
-El acto de vaciar un L</búfer>, generalmente cuando se llena.
+El acto de volcar un L</búfer>, generalmente cuando se llena.
=item 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-L</P+F>. Pregunta a Tom si quieres saber mucho más.
+I<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-L</P+F>. Pregunta a Tom si quieres saber mucho más.
=item fork
-Mecanismo que crea un L</proceso> derivado idéntico al proceso principal en el momento de su creación, al menos hasta que tenga sus propias ideas. Un hilo de ejecución con memoria protegida.
+Mecanismo que crea un L</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.
=item argumentos formales
-Nombres genéricos por los que una L</subrutina> conoce a sus L<argumentos|/argumento>. En muchos lenguajes los argumentos formales siempre reciben nombres individiuales, pero en Perl solo son los elementos de un array. Los argumentos formales de un programa Perl son C<$ARGV[0]>, C<$ARGV[1]>, etc. De manera similar, los argumentos formales de una subrutina Perl son C<$_[0]>, C<$_[1]>, etc. Puede dar a los argumentos nombres individuales asignando los valores a una lista L<my|perlfunc/my>. Vea también L</argumentos reales>.
+Nombres genéricos con los que se designa a los L<argumentos|/argumento> de una L</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 C<$ARGV[0]>, C<$ARGV[1]>, etc. De manera similar, los argumentos formales de una subrutina Perl son C<$_[0]>, C<$_[1]>, etc. Puede dar a los argumentos nombres individuales asignando los valores a una lista L<my|perlfunc/my>. Vea también L</argumentos reales>.
=item formato
@@ -778,21 +776,20 @@ Significa que no tiene que pagar a nadie para obtenerlo, pero los derechos de au
=item 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 regalar una copia a todos sus amigos.
+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.
=item freeware
-Históricamente, cualquier software que se regala, especialmente si también se incluye el código fuente. Ahora se suele llamar C<software open
-source>. Recientemente se ha puesto de moda usar este término en contradicción con L</software open source>, para referirse únicamente al software libre publicado con la licencia GPL (General
+Históricamente, cualquier software que se regala, especialmente si también se incluye el código fuente. Ahora se suele llamar C<software open source>. Recientemente se ha puesto de moda usar este término en contradicción con L</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.
=item 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, L</subrutina> u L</operador> que devuelve un L</valor>. Puede tener o no valores de entrada (denominados L<argumentos|/argumento>).
+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 L</subrutina> o un L</operador> que devuelve un L</valor>. Puede tener o no valores de entrada (denominados L<argumentos|/argumento>).
-=item Carácter extraño
+=item 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.
+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.
=back
@@ -816,7 +813,7 @@ En un sentido informal, el acto de usar globs y símbolos similares para detecta
=item global
-Algo que se puede ver en cualquier lugar, generalmente L<variables|/variable> y L<subrutinas|/subrutina> 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 L</paquete> actual. Las variables globales se pueden declarar con L<our|perlfunc/our>. Vea L<perlfunc/our>.
+Algo que se puede ver en cualquier lugar, generalmente L<variables|/variable> y L<subrutinas|/subrutina> 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 L</paquete> actual. Las variables globales se pueden declarar con L<our|perlfunc/our>. Vea L<perlfunc/our>.
=item destrucción global
@@ -831,14 +828,14 @@ Lenguaje como Perl, que es muy útil para conectar cosas que en principio no se
El tamaño de los elementos con los que se trabaja (de forma abstracta).
-=item ambicioso
+=item avaricioso
-Un L</subpatrón> cuyo L</cuantificador> desea detectar la mayor cantidad posible de cosas.
+Se dice de un L</subpatrón> cuyo L</cuantificador> desea detectar la mayor cantidad posible de cosas.
=item 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 L<grep|perlfunc/grep> integrada que permite buscar en una lista los elementos que cumplan algún criterio especificado, a diferencia del programa I<grep>(1), que busca líneas que coincidan con una L</expresión regular> en uno o varios archivos.
+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 L<grep|perlfunc/grep> predefinida que permite buscar en una lista los elementos que cumplan algún criterio especificado, a diferencia del programa I<grep>(1), que busca líneas que coincidan con una L</expresión regular> en uno o varios archivos.
=item grupo
@@ -865,11 +862,11 @@ Vea también L</devolución de llamada>.
=item referencia estricta
-L<Valor|/valor> L</escalar> que contiene la dirección real de un L</referente>, de forma que el recuente de L<referencias|/referencia> del referente la tenga en cuenta. (Algunas referencias estrictas se guardan internamente, como la referencia implícita de las vacantes de variable de un L</typeglob> a su referencia correspondiente). Una referencia estricta no es lo mismo que una L</referencia simbólica>.
+L<Valor|/valor> L</escalar> que contiene la dirección real de un L</referente>, de forma que el recuento de L<referencias|/referencia> del referente la tenga en cuenta. (Algunas referencias estrictas se guardan internamente, como la referencia implícita de las vacantes de variable de un L</typeglob> a su referencia correspondiente). Una referencia estricta no es lo mismo que una L</referencia simbólica>.
=item hash
-Una asociación no ordenada de pares L</clave>-L</valor>, almacenados de forma que se pueda usar fácilmente una L</clave> de tipo cadena para buscar el L</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 L<restringir|/hash restringido> a un conjunto fijo de claves.
+Asociación de pares L</clave>-L</valor> sin ordenar, almacenados de forma que se pueda usar fácilmente una L</clave> de tipo cadena para buscar el L</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 L<restringir|/hash restringido> a un conjunto fijo de claves.
=item tabla hash
@@ -877,7 +874,7 @@ Estructura de datos usada internamente por Perl para implementar arrays asociati
=item archivo de encabezado
-Archivo que contiene algunas definiciones necesarias que hay que incluir antes del resto del programa para realizar determinadas operaciones "oscuras".
+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 I<.h>. En realidad Perl no tiene archivos de encabezado, pero históricamente ha utilizado a veces archivos I<.h> traducidos con una extensión I<.ph>. Vea L<perlfunc/require>.
(Los archivos de encabezado han sido reemplazados por el mecanismo de L<módulos|/módulo>).
@@ -887,8 +884,8 @@ Del inglés I<here document>. Se llama así por una construcción similar de las
=item hexadecimal
-Número de base 16 (se suele abreviar como "hex"). Los dígitos 10 a 16 se suelen representar mediante las letras C<a> a C<f>.
-En Perl, las constantes hexadecimales empiezan con C<0x>. Vea también L<perlfunc/hex>.
+Número en base 16 (se suele abreviar como "hex"). Los dígitos 10 a 16 se suelen representar mediante las letras entre C<a> y C<f>.
+En Perl, las constantes hexadecimales empiezan por C<0x>. Vea también L<perlfunc/hex>.
=item directorio principal
@@ -899,13 +896,13 @@ El directorio en el que se encuentra cuando inicia sesión. En un sistema Unix,
El equipo en el que reside un programa (u otros datos).
-=item soberbia (hibris)
+=item 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 L</pereza> e L</impaciencia>.
=item HV
-Abreviatura de la definición de tipo "hash value" (valor de tipo hash), que contiene la representación interna que hace Perl de un hash. El tipo L</HV> es una subclase de L</SV>.
+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 L</HV> es una subclase de L</SV>.
=back
@@ -916,11 +913,11 @@ Abreviatura de la definición de tipo "hash value" (valor de tipo hash), que con
=item 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 una letra válida. (Es posible usar nombres más complicados en Perl, como los L<nombres completos|/nombre completo>).
+Perl también admite el guión bajo como carácter válido. (Es posible usar nombres más complicados en Perl, como los L<nombres completos|/nombre completo>).
=item 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 L</pereza> y L</soberbia (hibris)>.
+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 L</pereza> y L</soberbia>.
=item implementación
@@ -932,7 +929,7 @@ Obtener acceso a símbolos exportados por otro módulo. Vea L<perlfunc/use>.
=item incrementar
-Aumentar el valor de algo en una unidad (o en cualquier otra cantidad especificado).
+Aumentar el valor de algo en una unidad (o en cualquier otra cantidad especificada).
=item indexar
@@ -980,9 +977,9 @@ Abreviatura de "instancia de una clase", es decir, un L</objeto> de esa L</clase
L<Atributo|/atributo> de un L</objeto>; datos almacenados en un objeto concreto, no en la clase como un todo.
-=item integer
+=item entero
-Un 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.
+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.
=item interfaz
@@ -1010,7 +1007,7 @@ Entrada desde (o salida a) un L</archivo> o L</dispositivo>.
=item IO
-Un objeto de E/S interno. También puede significar L</objeto indirecto>.
+Objeto de E/S interno. También puede significar L</objeto indirecto>.
=item IP
@@ -1055,7 +1052,7 @@ IV también puede ser un valor entero (Integer Value) interno, del tipo que un L
=item clave
-Cadena de índice de un L</hash> que se usa para buscar el </valor>
+Cadena de índice de un L</hash> que se usa para buscar el L</valor>
asociado con esa clave.
=item palabra clave
@@ -1082,7 +1079,7 @@ L<Desplazamiento de bits|/desplazamiento de bits> que multiplica un número por
=item la más larga empezando por la izquierda
-La preferencia del motor de L<expresiones regulares|/expresión regular> por detectar la primera aparición de un L</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 L</ambicioso>). En L<perlre> encontrará I<mucha> más información sobre este tema.
+La preferencia del motor de L<expresiones regulares|/expresión regular> por detectar la primera aparición de un L</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 L</avaricioso>). En L<perlre> encontrará I<mucha> más información sobre este tema.
=item lexema
@@ -1108,7 +1105,7 @@ L<Variable|/variable> sujeta a L</control de ámbito léxico>, declarada con L<m
=item biblioteca
-Generalmente significa una colección de procedimientos. Antigualmente se llamaba así a un conjunto de subrutinas de un archivo I<.pl>. Actualmente suele usarse para hacer referencia al conjunto completo de L<módulos|/módulo> Perl del sistema.
+Generalmente es una colección de procedimientos. Antiguamente se llamaba así a un conjunto de subrutinas de un archivo I<.pl>. En la actualidad suele usarse para hacer referencia al conjunto completo de L<módulos|/módulo> Perl del sistema.
=item LIFO
@@ -1116,7 +1113,7 @@ I<Last In, First Out> (el último que entra es el primero que sale). Vea tambi
=item línea
-En Unix, una serie de cero o más caracteres de nueva línea que termina en un carácter de L</nueva línea>. En equipos que no usan Unix esto se emula mediante la biblioteca de C, aunque el L</sistema operativo> subyacente tenga ideas distintas.
+En Unix, una serie de cero o más caracteres que no son de nueva línea, culminados con un L</carácter de nueva línea>. En equipos que no usan Unix esto se emula mediante la biblioteca de C, aunque el L</sistema operativo> subyacente tenga ideas distintas.
=item almacenamiento en búfer de líneas
@@ -1126,17 +1123,17 @@ Se usa en una secuencia de salida de L</EE<sol>S estándar> que vuelca el L</bú
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 C<__LINE__>. El número de línea de entrada actual (para el último archivo leído a través de C<< E<lt>FHE<gt> >>) se representa con la variable C<$.> (C<$INPUT_LINE_NUMBER>). Muchos mensajes de error notifican ambos valores (si están disponibles).
-=item link
+=item vínculo/vincular
El sustantivo se refiere a un nombre de un L</archivo> contenido en un L</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.
=item LISTA
-Construcción sintática que representa una lista de expresiones separadas por comas y que al evalurse produce un L</valor de lista>. Cada L</expresión> de una L</LISTA> se evalía en L</contexto de lista y se interpola en el valor de lista.
+Construcción sintáctica que representa una lista de expresiones separadas por comas y que al evaluarse produce un L</valor de lista>. Cada L</expresión> de una L</LISTA> se evalúa en L</contexto de lista> y se interpola en el valor de lista.
=item lista
-Un conjunto ordenado de valores escalares.
+Conjunto ordenado de valores escalares.
=item contexto de lista
@@ -1144,7 +1141,7 @@ Situación en la que el entorno de una L</expresión> (el código que la llama)
=item operador de lista
-Un L</operador> que hace algo con una lista de valores, como L<join|perlfunc/join> o L<grep|perlfunc/grep>. Se suele usar en operadores predefinidos con nombre (como L<print|perlfunc/print>, L<unlink|perlfunc/unlink> y L<system|perlfunc/system>) para los que no es necesario escribir la lista de L<argumentos|/argumento> entre paréntesis.
+L<Operador|/operador> como L<join|perlfunc/join> o L<grep|perlfunc/grep>, que hace algo con una lista de valores. Se suele usar en operadores predefinidos con nombre (como L<print|perlfunc/print>, L<unlink|perlfunc/unlink> y L<system|perlfunc/system>) para los que no es necesario escribir la lista de L<argumentos|/argumento> entre paréntesis.
=item valor de lista
@@ -1164,7 +1161,7 @@ No tiene el mismo significado en todas partes. Una variable global en Perl se p
=item operador lógico
-Symbolo que representa conceptos como "and", "or", "xor" y "not".
+Símbolo que representa conceptos como "and", "or", "xor" o "not".
=item inspección hacia adelante
@@ -1227,7 +1224,7 @@ Programa de Unix que muestra la documentación en pantalla (páginas de manual).
=item página de manual
-Una "página" de los manuales que se suele consultar mediante el comando I<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 L<comandos|/comando>, L<llamadas al sistema|/llamada al sistema>, L<funciones|/función> de L</biblioteca>, L<dispositivos|/dispositivo>, L<protocolos|/protocolo>, L<archivos|/archivo>, etc. En este libro llamamos página de manual a cualquier archivo de documentación estándar de Perl (como I<perlop> o I<perldelta>), independientemente del formato con el que se haya instalado en el sistema.
+"Página" de los manuales que se suele consultar mediante el comando I<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 L<comandos|/comando>, L<llamadas de sistema|/llamada de sistema>, L<funciones|/función> de L</biblioteca>, L<dispositivos|/dispositivo>, L<protocolos|/protocolo>, L<archivos|/archivo>, etc. En este libro llamamos página de manual a cualquier archivo de documentación estándar de Perl (como I<perlop> o I<perldelta>), independientemente del formato con el que se haya instalado en el sistema.
=item detección
@@ -1241,7 +1238,7 @@ Vea L</variable de instancia>.
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 L</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.
-=item metacaracter
+=item metacarácter
L<Carácter|/carácter> que I<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 L</shell> tendrá algunos metacaracteres, las L<cadenas|/cadena> de Perl entre comillas tendrán otros metacaracteres y los patrones de L</expresión regular> tendrán todos los metacaracteres de comillas dobles y otros de su propia cosecha.
@@ -1251,7 +1248,7 @@ Algo que podríamos llamar L</metacarácter> si no fuera porque está formado po
=item método
-Un tipo de acción que un L</objeto> puede realizar si se le ordena. Vea L<perlobj>.
+Tipo de acción que un L</objeto> puede realizar si se le ordena. Vea L<perlobj>.
=item minimalismo
@@ -1295,19 +1292,19 @@ Las características que heredamos de nuestra madre y nuestro padre, combinadas
=over 4
-=item canalización con nombre
+=item tubería con nombre
-L<Conexión de barra vertical|/conexión de barra vertical> con un nombre incrustado en el L</sistema de archivos>, de forma que dos L<procesos|/proceso> no relacionados puedan acceder a dicha conexión.
+L<Tubería|/tubería> con un nombre incrustado en el L</sistema de archivos>, de forma que dos L<procesos|/proceso> no relacionados puedan acceder a dicha conexión.
=item espacio de nombres
-Un dominio de nombres. Evita tener que preocuparse de si los nombres de un dominio se usan en el otro. Vea L</paquete>.
+Dominio de nombres. Evita tener que preocuparse de si los nombres de un dominio se usan en el otro. Vea L</paquete>.
=item 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 L</puerto-adaptar>.
-=item nueva línea
+=item 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 C<\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.
@@ -1347,11 +1344,11 @@ La mitad de un L</byte>, equivalente a un dígito L</hexadecimal> y que represen
=item objeto
-Una L</instancia> de una L</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.
+L<Instancia|/instancia> de una L</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.
=item octal
-Un número de 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 L<oct|perlfunc/oct>.
+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 L<oct|perlfunc/oct>.
=item desplazamiento
@@ -1376,7 +1373,7 @@ Se suele usar también en un sentido más informal para indicar una cultura de p
=item 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 especial. Un operador determinado pueden tener expectativas específicas sobre los L<tipos|/tipo> de datos que se le deben pasar como argumentos (L<operandos|/operando>) y el tipo de datos que debe devolver.
+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 L<tipos|/tipo> de datos que se le deben pasar como argumentos (L<operandos|/operando>) y el tipo de datos que debe devolver.
=item sobrecarga de operador
@@ -1390,13 +1387,13 @@ Vea L<modificadores|/modificador> o L</modificador de expresión regular>.
Otro nombre para L</código de carácter>
-=item overloading
+=item 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 L</contexto>.
=item sobrescribir
-Ocultar o invalidar otra definición con el mismo nombre. (No se debe confundir con L</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 L</subrutina> para ocultar una </función> predefinida del mismo nombre (vea L<perlsub/Sobrescribir funciones predefinidas>) y describir cómo se puede definir un L</método> de sustitución en una L</clase derivada> para ocultar un método de la L</clase base> con el mismo nombre (vea L<perlobj>).
+Ocultar o invalidar otra definición con el mismo nombre. (No se debe confundir con L</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 L</subrutina> para ocultar una L</función> predefinida del mismo nombre (vea L<perlsub/Sobrescribir funciones predefinidas>) y describir cómo se puede definir un L</método> de sustitución en una L</clase derivada> para ocultar un método de la L</clase base> con el mismo nombre (vea L<perlobj>).
=item propietario
@@ -1442,7 +1439,7 @@ Lista de L<directorios|/directorio> en los que el sistema busca el programa que
=item ruta de acceso
-Un nombre completo de archivo, como I</usr/bin/perl>. A veces se confunde con L</PATH>.
+Nombre completo de archivo, como I</usr/bin/perl>. A veces se confunde con L</PATH>.
=item patrón
@@ -1454,32 +1451,32 @@ Comparación realizada de diversas maneras de un patrón (generalmente una L</ex
=item bits de permiso
-Bits que el L</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 L</modo> devuelta por la función predefinida L<stat|perlfunc/stat> cuando se pregunta sobre un archivo. En sistemas Unix, puede consultar la página de manual I<ls>(1) para obtener más información.
+Bits que el L</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 L</modo> devuelta por la función predefinida L<stat|perlfunc/stat> cuando se pregunta sobre un archivo. En sistemas Unix puede consultar la página de manual I<ls>(1) para obtener más información.
=item Pern
Lo que se obtiene al ejecutar C<Perl++> dos veces. Hacerlo una sola vez simplemente le riza el pelo. Debe incrementar ocho veces para lavar el pelo. Enjabonar, aclarar, repetir.
-=item conexión de barra vertical
+=item tubería
L<Conexión|/conexión> directa que pasa la salida de un L</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.
=item canalización
-Serie de L<procesos|/proceso> seguidos, vinculados mediante L<conexiones de barra vertical|/conexión de barra vertical>, cada una de las cuales pasa la secuencia de salida al siguiente proceso.
+Serie de L<procesos|/proceso> seguidos, vinculados mediante L<tuberías|/tubería>, cada una de las cuales pasa la secuencia de salida al siguiente proceso.
-=item platforma
+=item plataforma
-El contexto de hardware y software en que se ejecuta un programa. A
+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 I<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.
=item pod
-El lenguaje de marcado que se usa para incrustar documentación en código Perl. Vea L<perlpod>.
+Lenguaje de marcado que se usa para incrustar documentación en código Perl. Vea L<perlpod>.
=item puntero
-En un lenguaje como C, una L</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 L<claves|/clave> y nombres de L</variable>, o L<referencias estrictas|/referencia estricta>, que no son punteros (pero actúan como si lo fueran; de hecho, contienen punteros).
+En un lenguaje como C, es una L</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 L<claves|/clave> y nombres de L</variable>, o L<referencias estrictas|/referencia estricta>, que no son punteros (pero actúan como si lo fueran; de hecho, contienen punteros).
=item polimorfismo
@@ -1521,19 +1518,19 @@ Las normas de conducta que, en ausencia de otros criterios, determinan qué debe
=item prefijo
-Un </operador> que precede a su L</operando>, como en C<++$x>.
+L<Operador|/operador> que precede a su L</operando>, como en C<++$x>.
=item preprocesamiento
-Lo que hace algún L</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 L</conexión de barra vertical>. Vea también L</C preprocesador>.
+Lo que hace algún L</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 L</tubería>. Vea también L</preprocesador de C>.
=item procedimiento
-A L</subrutina>.
+Una L</subrutina>.
=item proceso
-Una 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 L<fork|perlfunc/fork>
+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 L<fork|perlfunc/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.
@@ -1569,7 +1566,7 @@ Referencia a un array cuyo primer elemento parece contener una referencia a un h
=item seudoliteral
-L<Operador|/operador> que se parece a un L</literal>, como el operador de recolección de salida, C<`>I<C<command>>C<`>.
+L<Operador|/operador> que se parece a un L</literal>, como el operador de recolección de salida, C<`>I<C<comando>>C<`>.
=item dominio público
@@ -1647,12 +1644,11 @@ Opción de un patrón o sustitución, como C</i>, que hace que no se distingan m
=item archivo normal
-Un L</archivo> que no es un L</directorio>, un L</dispositivo>, una L</canalización> con nombre o un L</socket>, o un L</vínculo simbólico>. Perl usa la prueba de archivo C<-f> para identificar archivos normales. A veces se llama archivo "simple".
+L<Archivo|/archivo> que no es un L</directorio>, un L</dispositivo>, una L</tubería> o un L</socket> con nombre, o un L</vínculo simbólico>. Perl usa la prueba de archivo C<-f> para identificar archivos normales. A veces se llama archivo "simple".
=item operador relacional
-Un L</operador> que indica si una relación de orden concreta es L<verdadera|/verdadero> para un par de L<operandos|/operando>. Perl has both
-numeric and string relational operators. Vea L</secuencia de intercalación>.
+L<Operador|/operador> que indica si una relación de orden concreta es L<verdadera|/verdadero> para un par de L<operandos|/operando>. Perl tiene operadores relaciones numéricos y de cadena. Vea L</secuencia de intercalación>.
=item palabras reservadas
@@ -1660,7 +1656,7 @@ Palabras con un significado predefinido específico para un L</compilador>, como
=item hash restringido
-Un L</hash> con un conjunto cerrado de claves permitidas. Vea L<Hash::Util>.
+L<Hash|/hash> con un conjunto cerrado de claves permitidas. Vea L<Hash::Util>.
=item valor devuelto
@@ -1711,12 +1707,12 @@ L<Valor|/valor> que se encuentra en el lado derecho de una L</asignación>. Vea
=item escalar
-Un valor singular, simple; un número, una L</cadena> o una L</referencia>.
+Valor singular, simple; un número, una L</cadena> o una L</referencia>.
=item contexto escalar
Situación en la que el entorno de una L</expresión> (el código que la llama) espera que esta devuelva un solo L</valor>, en lugar de una L</lista> de valores. Vea también L</contexto> y L</contexto de lista>.
-A veces un contexto escalar impone restricciones adicionales al valor devuelto (vea L</contexto de cadena> y L</contexto numérico>.
+A veces un contexto escalar impone restricciones adicionales al valor devuelto (vea L</contexto de cadena> y L</contexto numérico>).
A veces hablamos de un L</contexto booleano> en condicionales, pero esto no impone ninguna restricción adicional, puesto que cualquier valor escalar, tanto numérico como de tipo L</cadena>, ya es verdadero o falso.
=item literal escalar
@@ -1729,11 +1725,11 @@ Valor que es un L</escalar>, en contraste con una L</lista>.
=item variable escalar
-Una L</variable> con el prefijo C<$> que contiene un único valor.
+L<Variable|/variable> con el prefijo C<$> que contiene un único valor.
=item ámbito
-Lo que es visible desde una variable. Perl dispone de dos mecanismos de visibilidad: realiza un L</control de ámbito dinámico> de L<variables|/variable> L<locales|perlfunc/local>, lo que significa que el resto del L<bloque/bloqueo-bloque> y las L<subrutinas|/subrutina> llamadas por el resto del bloque pueden ver las variables locales para ese bloque. Asimismo, Perl realiza L</control de ámbito léxico> de variables L<my|perlfunc/my>, lo que significa que el resto del bloque puede ver la variable, pero otras subrutinas llamadas por el bloque I<no> la pueden ver.
+Lo que es visible desde una variable. Perl dispone de dos mecanismos de visibilidad: realiza un L</control de ámbito dinámico> de L<variables|/variable> L<locales|perlfunc/local>, lo que significa que el resto del L<bloque|/bloqueo-bloque> y las L<subrutinas|/subrutina> llamadas por el resto del bloque pueden ver las variables locales para ese bloque. Asimismo, Perl realiza L</control de ámbito léxico> de variables L<my|perlfunc/my>, lo que significa que el resto del bloque puede ver la variable, pero otras subrutinas llamadas por el bloque I<no> la pueden ver.
=item bloc de notas
@@ -1761,7 +1757,7 @@ L<Carácter|/carácter> o L</cadena> que evita que dos cadenas se confundan. La
=item serialización
-Proceso de colocar una L</estructura de datos> sofisticada en orden lineal de forma que se pueda almacenar como una L</cadena> en un archivo de disco o una base de datos, o se pueda enviar a través de una L</conexión de barra vertical>. En inglés también se llama I<marshalling>.
+Proceso de colocar una L</estructura de datos> sofisticada en orden lineal de forma que se pueda almacenar como una L</cadena> en un archivo de disco o una base de datos, o se pueda enviar a través de una L</tubería>. En inglés también se llama I<marshalling>.
=item servidor
@@ -1769,7 +1765,7 @@ En contexto de redes, un L</proceso> que anuncia un L</servicio> o que simplemen
=item 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 L<getservent|perlfunc/getservent> muestra los servicios conocidos.
+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 L<getservent|perlfunc/getservent> muestra los servicios conocidos.
=item setgid
@@ -1830,7 +1826,7 @@ Vea L</referencia simbólica>.
=item filtro de código fuente
-Un tipo especial de L</módulo> que hace un L</preprocesamiento> del script justo antes de que llegue al L</tokenizador>.
+Tipo de L</módulo> especial que hace un L</preprocesamiento> del script justo antes de que llegue al L</tokenizador>.
=item pila
@@ -1913,7 +1909,7 @@ Es un tipo de L</interfaz>; la L</implementación> subyacente puede dividir los
=item cadena
-Una secuencia de caracteres como "Dijo !@#*&%@#*?!". Una cadena no tiene que poder imprimirse completamente.
+Secuencia de caracteres como "Dijo !@#*&%@#*?!". Una cadena no tiene por qué ser completamente imprimible.
=item contexto de cadena
@@ -1945,7 +1941,7 @@ Parte de un programa que tiene un nombre o es accesible de otra manera, de forma
=item subíndice
-Un L</valor> que indica la posición de un L</elemento> de L</array> concreto de un array.
+L<Valor|/valor> que indica la posición de un L</elemento> de L</array> concreto de un array.
=item sustitución
@@ -1987,8 +1983,7 @@ Generalmente, cualquier L</token> o L</metasímbolo>. Se suele usar de manera m
=item tabla de símbolos
-Área que un L</compilador> usa para recordar símbolos. Un programa como perl debe recordar todos los nombres de todas las L<variables|/variable>,
-L<identificadores de archivos|/identificador de archivo> y L<subrutinas|/subrutina> que se han usado. Para ello coloca los nombres en un tabla de símbolos que se implementa en Perl como una L</tabla hash>. Existe una tabla de símbolos independiente para cada L</paquete>, a fin de asignar a cada paquete su propio L</espacio de nombres>.
+Área que un L</compilador> usa para recordar símbolos. Un programa como el intérprete perl debe recordar todos los nombres de todas las L<variables|/variable>, L<identificadores de archivos|/identificador de archivo> y L<subrutinas|/subrutina> que se han usado. Para ello coloca los nombres en un tabla de símbolos que se implementa en Perl como una L</tabla hash>. Existe una tabla de símbolos independiente para cada L</paquete>, a fin de asignar a cada paquete su propio L</espacio de nombres>.
=item depurador simbólico
@@ -1996,7 +1991,7 @@ Programa que permite recorrer paso a paso la L<ejecución|/ejecutar> del program
=item vínculo simbólico
-Un nombre de archivo alternativo que apunta al L</nombre de archivo> real, que a su vez apunta al L</archivo> real. Siempre que el L</sistema operativo> intenta analizar una L</ruta de acceso> que contiene un vínculo simbólico, simplemente sustituye el nombre nuevo y continúa con el análisis.
+Nombre de archivo alternativo que apunta al L</nombre de archivo> real, que a su vez apunta al L</archivo> real. Siempre que el L</sistema operativo> intenta analizar una L</ruta de acceso> que contiene un vínculo simbólico, simplemente sustituye el nombre nuevo y continúa con el análisis.
=item referencia simbólica
@@ -2015,11 +2010,11 @@ Forma alternativa y más sencilla de escribir algo; un método abreviado.
Viene del griego y significa "con orden". Especifica cómo deben disponerse las cosas (en particular, los símbolos).
-=item árbol sintático
+=item árbol de sintaxis
Representación interna del programa en la que las L<construcciones|/construcción-construir> de bajo nivel cuelgan de las construcciones de nivel más alto que las contienen.
-=item syscall
+=item llamada de sistema
Llamada de L</función> dirigida directamente al L</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 C<$!> (C<$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 L<system|perlfunc/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 L<syscall|perlfunc/syscall> de Perl; nunca lo usaremos para algo que se llame a través de la función L<system|perlfunc/system> de Perl.
@@ -2048,7 +2043,7 @@ La variable C<$/> contiene la cadena con la que termina una operación L<readlin
=item ternario
-Un L</operador> que consume tres L<operandos|/operando>. A veces también se llama L</trino>.
+L<Operador|/operador> que consume tres L<operandos|/operando>. A veces también se llama L</trino>.
=item texto
@@ -2064,7 +2059,7 @@ Unión de una variable mágica a su clase de implementación. Vea L<perlfunc/ti
=item 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.
+I<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.
=item token
@@ -2080,7 +2075,7 @@ Dividir el texto de un programa en L<tokens|/token>. También se llama "separar
=item 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 acometer una empresa faraónica, necesitamos nuestro propio taller de maquinaria para fabricar herramientas especiales. Perl es una especie de taller de maquinaria.
+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.
=item transliterar
@@ -2121,7 +2116,7 @@ Pony $guillermo>.
=item typedef
-Una definición de tipo en el lenguaje C.
+Definición de tipo en el lenguaje C.
=item typeglob
@@ -2152,7 +2147,7 @@ Máscara de los L</bits de permiso> que deben desactivarse al crear archivos o d
=item operador unario
-Operador que se aplica a un solo L</operando>, como C<!> o L<chdir|perlfunc/chdir>. Los operadores unarios son generalmente operadores de prefijo; es decir, preceden al operando. Los operadores C<++> y C<--> pueden ser de prefijo o de postfijo. (Su posición I<cambia> su significado.)
+Operador que se aplica a un solo L</operando>, como C<!> o L<chdir|perlfunc/chdir>. Los operadores unarios son generalmente operadores de prefijo; es decir, preceden al operando. Los operadores C<++> y C<--> pueden ser de prefijo o de postfijo. (Su posición I<cambia> su significado).
=item Unicode
@@ -2219,7 +2214,7 @@ Expresión que, al cambiar de valor, activa un punto de interrupción en el depu
=item espacio en blanco
-L<Carácter|/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.
+L<Carácter|/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.
=item palabra
@@ -2235,7 +2230,7 @@ Programa o subrutina que ejecuta automáticamente otro programa o subrutina, mod
=item 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 L<format|perlfunc/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 L<open|perlfunc/open>.
+I<What You See Is What You Get>. Se suele usar cuando algo que aparece en pantalla coincide con el aspecto final, como las declaraciones L<format|perlfunc/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 L<open|perlfunc/open>.
=back
@@ -2260,7 +2255,7 @@ L<Subrutina|/subrutina> externa definida en L</XS>.
=item yacc
-Yet Another Compiler Compiler. Un generador de analizador sin el cual Perl probablemente no habría existido. Vea el archivo I<perly.y> de la distribución de código fuente de Perl.
+I<Yet Another Compiler Compiler>. Un generador de analizadores sin el cual Perl probablemente no habría existido. Vea el archivo I<perly.y> de la distribución de código fuente de Perl.
=back
@@ -2280,7 +2275,7 @@ Proceso fallecido (finalizado) cuyo proceso primario aún no ha recibido la noti
=head1 AUTOR Y COPYRIGHT
-eBasado en el Glosario de Programming Perl, Tercera Edición,
+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.
View
2 pod/translated/perlhacktut.pod
@@ -81,7 +81,7 @@ debe convertirse en
continue;
}
-OK. Ya hemos corregido el código C. Ahora tenemos que hacer dos cosas más para terminar de preparar el parche: hemos cambiado el comportamiento de Perl, por lo que debemos documentar el cambio. También tenemos que proporcionar pruebas de regresión adicionales para asegurarnos de que nuestro parche funciona y no crea ningún error en otro lugar.
+Muy bien. Ya hemos corregido el código C. Ahora tenemos que hacer dos cosas más para terminar de preparar el parche: hemos cambiado el comportamiento de Perl, por lo que debemos documentar el cambio. También tenemos que proporcionar pruebas de regresión adicionales para asegurarnos de que nuestro parche funciona y no crea ningún error en otro lugar.
=head2 Comprobar el parche
View
331 pod/translated/perlmod.pod
@@ -7,243 +7,239 @@ perlmod - Módulos Perl (paquetes y tablas de símbolos)
=head2 Paquetes
X<package> X<paquete> X<namespace> X<espacio de nombres> X<variable, global> X<global, variable> X<global variable> X<variable global> X<global>
-Perl proporciona un mecanismo para espacios de nombres alternativos, de forma que se evite que los paquetes se pisen unos a otros sus variables. De hecho, en Perl no hay nada parecido a variables globales. La instrucción package declara que la unidad de compilación está en el espacio de nombres especificado. El ámbito de la declaración de paquete alcanza desde la declaración misma hasta el final del bloque de cierre, C<<eval> o archivo, el primero que aparezca (el mismo ámbito que el de los operadores my() y local()). Los identificadores dinámicos sin calificar estarán en el mismo espacio de nombres, excepto aquellos pocos identificadores que, si no están calificados, corresponderán por defecto al paquete principal en lugar de al actual, como se indica a continuación. Una instrucción package solo afecta a las variables dinámicas, incluidas aquellas en las que se usa local(), pero I<no> variables léxicas creadas con my(). Normalmente será la primera declaración en un archivo incluida por medio de los operadores C<do>, C<require> o C<use>. Puede cambiar a un paquete en más de un lugar; únicamente influye en qué tabla de símbolos usa el compilador para el resto del bloque. Puede hacer referencia a variables e identificadores de archivo en otros paquetes usando el prefijo en el identificador con el nombre del paquete y doble signo de dos puntos: C<$Paquete::Variable>. Si el nombre del paquete se omite, se asume que el paquete es C<main>. Es decir, C<$::vela> equivale a C<$main::vela>.
+Perl proporciona un mecanismo de espacios de nombres alternativos que evita colisiones entre variables de distintos paquetes. De hecho, en Perl no hay variables globales. La instrucción C<package> declara que la unidad de compilación está en el espacio de nombres especificado. El ámbito de la declaración de paquete abarca desde la declaración misma hasta el final del bloque, de la función C<eval> o del archivo actuales, lo que aparezca antes (es el mismo ámbito que el de los operadores my() y local()). Los identificadores dinámicos sin calificar estarán en este espacio de nombres, excepto los pocos identificadores que, de no estar calificados, corresponderán de manera predeterminada al paquete C<main> en lugar de al actual, como se indica a continuación. Una instrucción C<package> solo afecta a las variables dinámicas, incluidas aquellas en las que se usa local(); I<no> afecta a las variables léxicas creadas con my(). Normalmente será la primera declaración en un archivo, incluida por medio de los operadores C<do>, C<require> o C<use>. Puede cambiar a un paquete en más de un lugar; esto solo influye en la tabla de símbolos que el compilador usará para el resto del bloque. Puede hacer referencia a variables e identificadores de archivo en otros paquetes usando como prefijo del identificador el nombre del paquete y un doble signo de dos puntos: C<$Paquete::Variable>. Si se omite el nombre del paquete, se supondrá que es C<main>. Es decir, C<$::vela> equivale a C<$main::vela>.
-El antiguo delimitador de paquete era una simple comilla, pero los dos puntos (dobles) es ahora el delimitador usado, en parte porque es más legible para los humanos y en parte por que más legible para las macros de B<emacs>. También hace que los programadores de C++ se sientan más cómodos, más que si se usara la comilla, que se parece más al estilo seguido por los programadores de Ada. Ya que la sintaxis previa todavía se admite para mantener la compatibilidad con versiones previas, si intenta usar una cadena como C<"Este es el $amo's de la casa"> se accederá a C<$amo::s>; es decir, la variable $s en el paquete C<owner>, que seguramente no es lo que desea.
-Use llaves para eliminar la ambigüedad, como en C<"Este es el ${amo}'s de la casa">.
+Anteriormente, el delimitador de paquete era una simple comilla, pero ahora se usa un doble signo de dos puntos, en parte porque es más legible para los humanos y también porque es más legible para las macros de B<emacs>. Además, hace que los programadores de C++ se sientan más cómodos (más que si se usara la comilla, que se parece más al estilo seguido por los programadores de Ada). Puesto que la sintaxis antigua todavía se admite por compatibilidad con las versiones anteriores, si intenta usar una cadena como C<"Vamos a cenar en $Gino's">, se accederá a C<$Gino::s>; es decir, la variable $s del paquete C<Gino>, que seguramente no sea lo que desea.
+Use llaves para eliminar ambigüedades: C<"Vamos a cenar en ${Gino}'s">.
X<::> X<'>
-Los paquetes también pueden contener separadores, como en C<$OUTER::INNER::var>. Sin embargo, esto no implica nada sobre el orden de búsqueda de los nombres. No hay paquetes relativos: todos los símbolos son locales al paquete actual o deben aparecer completamente especificados, comenzando por el paquete más externo. Por ejemplo, no hay ningún lugar dentro del paquete C<OUTER> en que la variable <$INNER::var> pueda referirse como C<$OUTER::INNER::var>. C<INNER> se refiere a un paquete global totalmente separado.
+Los paquetes también pueden contener separadores, como en C<$EXTERIOR::INTERIOR::var>. Sin embargo, esto no implica nada sobre el orden de búsqueda de los nombres. No hay paquetes relativos: todos los símbolos deben ser locales con respecto al paquete actual o deben aparecer completamente calificados, comenzando por el paquete más externo. Por ejemplo, no hay ningún lugar dentro del paquete C<EXTERIOR> en el que la variable <$INTERIOR::var> pueda hacer referencia a C<$EXTERIOR::INTERIOR::var>. C<INTERIOR> es un paquete global totalmente independiente.
-Únicamente los identificadores que comienzan por letras (o subrayados) se almacenan en la tabla de símbolos del paquete. Todos los demás símbolos se almaecnan en el paquete C<main>, incluyendo todas las variables de puntuación, como $_. Además, cuando no se usan los nombres cualificados, los identificadores STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV, INC y SIG se almacenan en el paquete C<main>, incluso cuando se usan para otros propósitos que los predefinidos. Si dispone de un paquete llamado C<m>, C<s> o C<y>, entonces no puede usar la forma cualificada de los identificadores, porque podría interpretarse como una coincidencia de patrones una substitución o una transliteración.
-X<variable, puntuación>
+En la tabla de símbolos de un paquete sólo se almacenarán los identificadores que comiencen por letras (o guiones bajos). Todos los demás símbolos se almacenarán en el paquete C<main>, incluidas todas las variables de puntuación, como $_. Además, cuando no se usan los nombres calificados, los identificadores STDIN, STDOUT, STDERR, ARGV, ARGVOUT, ENV, INC y SIG se almacenan en el paquete C<main>, incluso cuando se usan para propósitos distintos de los predefinidos. Si tiene un paquete llamado C<m>, C<s> o C<y>, no puede usar la forma calificada de un identificador, ya que podría interpretarse como una detección de patrones, una substitución o una transliteración.
+X<variable, punctuation> X<variable, puntuación>
-Las variables que comienzan con un subrayado se suelen almacenar en el paquete main, pero hemos decidido que era más útil para los desarrolladores de paquetes ser capaces de usar subrayados al inicio para indicar nombres de variables y métodos privados.
-Sin embargo, los nombres de variables y funciones cuyo nombre contiene un único símbolo C<_> como $_ y C<sub _> se almacenan a la fuerza en el paquete C<main>. Consulte también L<perlvar/"The Syntax of Variable Names">.
+Las variables cuyo nombre comienza con un guión bajo se solían asignar al paquete C<main>, pero en su día decidimos que para los desarrolladores de paquetes era más útil poder usar guiones bajos iniciales para indicar nombres de variables y métodos privados.
+Sin embargo, aún se fuerza la asignación al paquete C<main> de los nombres de variables y funciones con un único guión bajo (C<_>), como $_ y C<sub_>. Vea también la sección "La sintaxis de los nombres de variables" de L<perlvar>.
-Las cadenas C<eval>uadas se compilan en el paquete en que se compiló la función eval(). (Las asignaciones a C<$SIG{}>, sin embargo, asumen que el controlador de señal especificado está en el paquete C<main>. Cualifique el nombre del controlador de señal si desea que esté en un paquete.) Consulte el documento F<perldb.pl> para disponer de un ejemplo en la librería de Perl. It initially switches
-to the C<DB> package so that the debugger doesn't interfere with variables
-in the program you are trying to debug. En varios puntos, sin embargo, cambia temporalmente al paquete C<main> para evaluar varias expresiones en este contexto (o en el contexto en el que esté trabajando). Vea L<perldebug>.
+Las cadenas evaluadas con C<eval> se compilan en el paquete en que se compiló la función eval() (sin embargo, las asignaciones a C<$SIG{}> suponen que el controlador de señal especificado está en el paquete C<main>; califique el nombre del controlador de señal si desea que esté en un paquete). En el archivo F<perldb.pl> de la biblioteca de Perl encontrará un ejemplo. Inicialmente cambia al paquete C<DB>, de forma que el depurador no interfiera con las variables del programa que intenta depurar. Sin embargo, en varios puntos cambia temporalmente al paquete C<main> para evaluar diversas expresiones en este contexto (o en el contexto en el que esté trabajando). Vea L<perldebug>.
-El símbolo especial C<__PACKAGE__> contiene el paquete actual, pero no puede usarse (fácilmente) para construir nombres de variables.
+El símbolo especial C<__PACKAGE__> contiene el paquete actual, pero no puede usarse (fácilmente) para crear nombres de variables.
-Consulte el documento L<perlsub> para otras cuestiones relativas al ámbito y relacionadas con my() , local() y L<perlref> en relación a las clausuras.
+Vea L<perlsub> para obtener información sobre otras cuestiones relativas al ámbito y relacionadas con my() y local(); vea L<perlref> para obtener información sobre las clausuras.
=head2 Tabla de símbolos
-X<symbol table> X<stash> X<%::> X<%main::> X<typeglob> X<glob> X<alias>
+X<symbol table> X<tabla de símbolos> X<stash> X<%::> X<%main::> X<typeglob> X<glob> X<alias>
-La tabla de símbolos para un paquete se almacena en la tabla hash cuyo nombre es el nombre del paquete agregando dos caracteres de dos puntos. El nombre de la tabla de símbolos es entonces C<%main::> o C<%::> de forma abreviada. De la misma forma, la tabla de símbolos del paquete anidado mencionado previamente se denomina C<%OUTER::INNER::>.
+La tabla de símbolos de un paquete se almacena en el hash cuyo nombre es el nombre del paquete con un doble signo de dos puntos anexado. Así, el nombre de la tabla de símbolos de C<main> es C<%main::>, y se puede abreviar como C<%::>. De la misma forma, el nombre de la tabla de símbolos del paquete anidado mencionado previamente sería C<%EXTERIOR::INTERIOR::>.
-El valor en cada entrada de la tabla hash es a lo que se refiere cuando usa la notación C<*name>.
+Usamos la notación C<*nombre> para hacer referencia al valor de cada entrada del hash.
local *main::foo = *main::bar;
-Puede usar esta sentencia para imprimir todas las variables del paquete, por ejemplo. La librería estándar F<dumpvar.pl>, aunque obsoleta, y el módulo Devel::Symdump de CPAN hace fácil su uso.
+Puede usar esto para imprimir todas las variables del paquete, por ejemplo. La biblioteca estándar (aunque anticuada) F<dumpvar.pl> y el módulo Devel::Symdump de CPAN lo usan.
-El resultado de crear nuevas entradas en la tabla de símbolos de forma directa, o modificar cualquier entrada que no sean tipos globales, no está definido y puede estar sujeto a cambios entre versiones de Perl.
+El resultado de crear directamente nuevas entradas en la tabla de símbolos o de modificar cualquier entrada que no sea ya un I<typeglob> no está definido y puede estar sujeto a cambios entre versiones de Perl.
-Las asignaciones a tipos globales realizan una operación de alias. Por ejemplo:
+Una asignación a un I<typeglob> realiza una operación de creación de alias. Por ejemplo:
- *dick = *richard;
+ *bea = *beatriz;
-hace que las variables, subrutinas, formatos e identificadores de archivos y directorios accesibles mediante el identificador C<richard> puedan accederse también mediante C<dick>. Debe asignar una referencia si desea dar alias sólo a una variable particular o subrutina:
+hace que las variables, subrutinas, formatos e identificadores de archivos y directorios a los que se accede mediante el identificador C<beatriz> también sean accesibles mediante C<bea>. Si desea crear un alias de una sola variable o subrutina específica, debe asignar una referencia:
- *dick = \$richard;
+ *bea = \$beatriz;
-Esto hace que $richard y $dick sean la misma variable; sin embargo hace que @richard y @dick sean arrays separados. Difícil, ¿eh?
+Esto hace que $beatriz y $bea sean la misma variable; en cambio, @beatriz y @bea son arrays independientes. Es un poco lioso, ¿no?
-Hay una sútil diferencia entre las sentencias siguientes:
+Existe una sutil diferencia entre las instrucciones siguientes:
*foo = *bar;
*foo = \$bar;
-C<*foo = *bar> hace que los mismos tipos globales sean sinónimos, mientras que C<*foo = \$bar> hace que las porciones escalares de dos tipos globales distintos se refieran al mismo valor escalar. Esto implica que el código siguiente:
+C<*foo = *bar> hace que los I<typeglobs> sean sinónimos, mientras que C<*foo = \$bar> hace que las partes escalares de dos I<typeglobs> distintos se refieran al mismo valor escalar. Esto se puede ver en el siguiente ejemplo de código:
$bar = 1;
*foo = \$bar; # Hace que $foo sea un alias de $bar
{
- local $bar = 2; # Restringe los cambios a block
- print $foo; # imprime '1'!
+ local $bar = 2; # Restringe los cambios al bloque
+ print $foo; # Imprime '1'
}
-No imprimiría '1' porque C<$foo> mantiene una referencia a la variable I<original>
-C<$bar> original. La que fue reemplazada por C<local()> y que será restaurada cuando finalice el bloque. Ya que las variables se acceden mediante typeglob, puede usar C<*foo = *bar> para crear un alias que pueda ser localizado. (Pero tenga en cuenta que esto significa que no puede disponer de C<@foo> y C<@bar> separadas, etc.)
+Se imprime '1', ya que C<$foo> contiene una referencia a la variable C<$bar> I<original>, la que fue reemplazada por C<local()> y que será restaurada cuando finalice el bloque. Como el acceso a las variables se realiza a través del I<typeglob>, puede usar C<*foo = *bar> para crear un alias que se pueda localizar (pero tenga en cuenta que esto significa que no puede disponer de C<@foo> y C<@bar> independientes, etc.).
-Lo que hace que todo esto sea importante es que el módulo Exporter usa alias de expansión como el mecanismo de importación/exportación. El hecho de poder localizar adecuadamente una variable exportada de un módulo depende de cómo se exportó:
+Lo que hace que todo esto sea importante es que el módulo Exporter usa alias de expansión como mecanismo de importación/exportación. Una variable exportada de un módulo se podrá localizar adecuadamente o no en función de cómo se haya exportado:
- @EXPORT = qw($FOO); # Forma usual; no puede localizarse
- @EXPORT = qw(*FOO); # Puede localizarse
+ @EXPORT = qw($FOO); # Forma usual; no se puede localizar
+ @EXPORT = qw(*FOO); # Se puede localizar
-Puede evitar el primer caso usando el nombre completamente cualificado (C<$Package::FOO>) donde precise un valor local, o bien reemplazarlo haciendo C<*FOO = *Package::FOO> en su script.
+Puede evitar el primer caso usando el nombre completo (C<$Package::FOO>) donde necesite un valor local, o bien reemplazarlo mediante C<*FOO = *Package::FOO> en el script.
-El mecanismo C<*x = \$y> podría usarse para pasar y devolver referencias sencillas a o desde las subrutinas si no desea copiar el valor completo. Sólo funciona para asignar valor a variables dinámicas, no léxicas.
+El mecanismo C<*x = \$y> se puede usar para pasar y devolver referencias sencillas a (o desde) las subrutinas si no desea copiar el valor completo. Sólo funciona al asignar valores a variables dinámicas (no léxicas).
- %some_hash = (); # no puede ser my()
- *some_hash = fn( \%another_hash );
+ %mi_hash = (); # no puede ser my()
+ *mi_hash = fn( \%otro_hash );
sub fn {
- local *hashsym = shift;
- # ahora use %hashsym de forma usual y
- # afectará al hash llamante %another_hash
+ local *sim_hash = shift;
+ # ahora use %sim_hash de la forma usual y
+ # afectará al hash %otro_hash del autor de la llamada
my %nhash = (); # haga lo que desee
return \%nhash;
}
-En la devolución, la referencia reemplazará la ranura de la tabla hash en la tabla de símbolos especificada por el typeglob *some_hash. Esto es una forma no habitual de pasar referencias de forma sencilla cuando no desea recordar cómo desreferenciar variables de forma explícita.
+Al volver, la referencia reemplazará la ubicación de hash ocupada en la tabla de símbolos especificada por el typeglob *mi_hash. Esta es una forma poco habitual de pasar referencias de forma sencilla, cuando no se desea tener que recordar cómo desreferenciar variables de forma explícita.
-Otro uso de la tabla de símbolos consiste en hacer "constantes" escalares.
-X<constant> X<scalar, constant>
+Otro uso de la tabla de símbolos consiste en crear escalares "constantes".
+X<constant> X<constante> X<scalar, constant> X<escalar, constante>
*PI = \3.14159265358979;
-Ahora no puede modificar C<$PI>, lo que probablemente sea una buena idea.
-Esto no es lo mismo que una subrutina constante, que está sujeta a la optimización en tiempo de compilación. Una subrutina constante es una cuyo prototipo no contiene argumentos y que devuelve una expresión constante. Consulte el documento L<perlsub> para tener más información al respecto. El pragma C<use constant> es una abreviatura adecuada para estos casos.
+Ahora no puede modificar C<$PI>, lo que probablemente no sea mala idea.
+Esto no es lo mismo que una subrutina constante, que está sujeta a optimización en tiempo de compilación. Una subrutina constante es una subrutina cuyo prototipo no consume argumentos y devuelve una expresión constante. En L<perlsub> encontrará más información al respecto. El pragma C<use constant> es una abreviatura adecuada para estos casos.
-Puede indicar C<*foo{PACKAGE}> y C<*foo{NAME}> para encontrar de qué nombre y paquete proviene la entrada de la tabla de símbolos *foo. Esto puede ser útil en una subrutina que recibe typeglobs como argumentos:
+Puede usar C<*foo{PACKAGE}> y C<*foo{NAME}> para averiguar de qué nombre y paquete proviene la entrada *foo de la tabla de símbolos. Esto puede ser útil en una subrutina que recibe I<typeglobs> como argumentos:
sub identificar_typeglob {
my $glob = shift;
- print 'Me diste ', *{$glob}{PACKAGE}, '::', *{$glob}{NAME}, "\n";
+ print 'Recibí ', *{$glob}{PACKAGE}, '::', *{$glob}{NAME}, "\n";
}
- identify_typeglob *foo;
- identify_typeglob *bar::baz;
+ identificar_typeglob *foo;
+ identificar_typeglob *bar::baz;
Esto imprime
- Me diste main::foo
- Me diste bar::baz
+ Recibí main::foo
+ Recibí bar::baz
-La notación C<*foo{THING}> puede usarse también para obtener referencias a los elementos individuales de *foo. Consulte L<perlref>.
+También se puede usar la notación C<*foo{COSA}> para obtener referencias a los elementos individuales de *foo. Vea L<perlref>.
-Las definiciones de subrutinas (y las declaraciones, de igual forma) no tienen por qué ubicarse en el paquete al que pertenece la tabla de símbolos en que aparecen. Es posible definir una subrutina fuera del paquete dando una cualificación explícita del nombre de la subrutina:
+Las definiciones de subrutinas (y las definiciones de declaraciones) no tienen por qué ubicarse en el paquete al que pertenece la tabla de símbolos en que aparecen. Es posible definir una subrutina fuera del paquete calificando explícitamente el nombre de la subrutina:
package main;
- sub Some_package::foo { ... } # &foo definido en Some_package
+ sub Un_paquete::foo { ... } # &foo definida en Un_paquete
-Esto es una abreviatura para una asignación de typeglob en tiempo de compilación:
+Esto no es más que una forma abreviada de asignación de I<typeglob> en tiempo de compilación:
- BEGIN { *Some_package::foo = sub { ... } }
+ BEGIN { *Un_paquete::foo = sub { ... } }
-y I<no> no es lo mismo que escribir:
+y I<no> es lo mismo que escribir:
{
- package Some_package;
+ package Un_paquete;
sub foo { ... }
}
-En las dos primeras versiones, el cuerpo de la subrutina se define en el paquete principal y I<no> en Some_package. De forma que algo como esto:
+En las dos primeras versiones, el cuerpo de la subrutina se define en el paquete C<main>, I<no> en Un_paquete. De forma que el código siguiente:
package main;
- $Some_package::name = "fred";
- $main::name = "barney";
+ $Un_paquete::nombre = "Pedro";
+ $main::nombre = "Pablo";
- sub Some_package::foo {
- print "en ", __PACKAGE__, ": \$name es '$name'\n";
+ sub Un_paquete::foo {
+ print "en ", __PACKAGE__, ": \$nombre es '$nombre'\n";
}
- package Foo;
+ Un_paquete::foo();
imprime:
- en main: $name es 'barney'
+ en main: $nombre es 'Pablo'
en lugar de:
- en Some_package: $name es 'fred'
+ en Un_paquete: $nombre es 'Pedro'
-Esto también tiene implicaciones para el uso del calificador SUPER:: (consulte L<perlobj>).
+Esto también tiene implicaciones para el uso del calificador SUPER:: (vea L<perlobj>).
=head2 BEGIN, UNITCHECK, CHECK, INIT y END
X<BEGIN> X<UNITCHECK> X<CHECK> X<INIT> X<END>
-Cinco bloques de código de nombre especial se ejecutan al principio y final de la ejecución de un programa Perl. Son los bloques C<BEGIN>,
+Hay cinco bloques de código con un nombre especial que se ejecutan al principio y final de la ejecución de un programa Perl. Son los bloques C<BEGIN>,
C<UNITCHECK>, C<CHECK>, C<INIT> y C<END>.
-Estos bloques de código pueden usarse con el prefijo C<sub> para dar la apariencia de una subrutina (aunque no se considera que esto sea adecuado). Debe considerarse que estos bloques de código no existen realmente como subrutinas con nombres (aunque así lo parezca). Esto es así ya que puede tener B<más de uno> de estos bloques de código en un programa y B<todos> ellos se ejecutarán en el momento adecuado. Por esta razón no puede ejecutar cualquiera de estos bloques usando su nombre.
+Estos bloques de código pueden usarse con el prefijo C<sub> para dar la apariencia de ser subrutinas (aunque esto no se recomienda). Debe tenerse en cuenta que estos bloques de código no existen realmente como subrutinas con nombres, aunque así lo parezca. Esto es así porque se puede incluir B<más de uno> de estos bloques de código en un programa y B<todos> ellos se ejecutarán en el momento adecuado. Por esta razón no puede ejecutar ninguno de estos bloques usando su nombre.
-El bloque de código C<BEGIN> se ejecuta tan pronto como es posible, es decir, en el momento en que está completamente definido, incluso antes del análisis del resto del archivo (o cadena) que lo contiene). Es posible disponer de varios bloques C<BEGIN> en el mismo archivo (o cadena evaluada); se ejecutarán por orden de definición. Ya que el bloque de código C<BEGIN>se ejecuta inmediatamente, puede obtener definiciones de subrutinas u otros elementos de otros archivos a tiempo para que sean visibles en tiempo de compilación y ejecución. Una vez ejecutado el bloque C<BEGIN> pasa a estar no definido y cualquier código usado se devuelve al banco de memoria de Perl.
+Un bloque de código C<BEGIN> se ejecuta tan pronto como es posible, es decir, en el momento en que está completamente definido, incluso antes del análisis del resto del archivo (o cadena) que lo contiene. Es posible disponer de varios bloques C<BEGIN> en el mismo archivo (o cadena evaluada); se ejecutarán por orden de definición. Puesto que el bloque de código C<BEGIN> se ejecuta inmediatamente, puede obtener definiciones de subrutinas, etc. de otros archivos a tiempo para que sean visibles en tiempo de compilación y ejecución. Una vez ejecutado el bloque C<BEGIN>, pasa a estar no definido y el código usado se devuelve al banco de memoria de Perl.
-El bloque de código C<END> se ejecuta tan tarde como sea posible, es decir, una vez que Perl ha finalizado la ejecución del programa y justo antes de que se produzca la salida del intérprete, incluso si la salida se debe al resultado de la función die().
-(Pero no es así si está transformado en otro programa mediante C<exec> o bien se ha desencadenado por una señal, que debe capturar por sí mismo (si es posible)). Puede disponer de múltiples bloques C<END> en un mismo archivo y se ejecutarán en orden inverso al de la definición: es decir, siguiendo el orden primero el llegar - último en salir (LIFO). Los bloques C<END> no se ejecutan cuando se lanza perl con la opción C<-c> o si falla la compilación.
+El bloque de código C<END> se ejecuta tan tarde como sea posible, es decir, una vez que Perl ha finalizado la ejecución del programa y justo antes de que se produzca la salida del intérprete, incluso si la salida se debe a la ejecución de la función die()
+(esto no ocurre si se transforma en otro programa mediante C<exec> o si se desencadena por una señal; el código debe encargarse de capturar esta señal, si es posible). Puede disponer de múltiples bloques C<END> en un mismo archivo; se ejecutarán en orden inverso al de la definición: es decir, siguiendo el orden "primero en llegar, último en salir" (LIFO, I<last in, first out>). Los bloques C<END> no se ejecutarán si se inicia perl con el modificador C<-c> o si se produce un error de compilación.
-Tenga en cuenta que los bloques de código C<END> B<no> se ejecutan al final de una cadena C<eval()>: si cualquier bloque C<END> se crea mediante una cadena C<eval()>. entonces se ejecutará como cualquier otro bloque C<END> del mismo paquete en orden LIFO, justo antes de que se produzca la salida del intérprete.
+Tenga en cuenta que los bloques de código C<END> B<no> se ejecutan al final de una evaluación C<eval()> de cadena: si se crea un bloque C<END> mediante una función C<eval()> de cadena, se ejecutará como cualquier otro bloque C<END> del mismo paquete en orden LIFO, justo antes de que se produzca la salida del intérprete.
-Dentro de un bloque de código C<END>, C<$?> contiene el valor que el programa va a pasar a C<exit()>. Puede modificar C<$?> para cambiar el valor de salida del programa. Tenga cuidado de cambiar C<$?> accidentalmente (por ejemplo, ejecutando algo mediante C<system>).
+Dentro de un bloque de código C<END>, C<$?> contiene el valor que el programa va a pasar a C<exit()>. Puede modificar C<$?> para cambiar el valor de salida del programa. Evite cambiar C<$?> accidentalmente (por ejemplo, ejecutando algo mediante C<system>).
X<$?>
-Dentro de un bloque C<END> el valor de C<${^GLOBAL_PHASE}> es C<"END">.
+Dentro de un bloque C<END>, el valor de C<${^GLOBAL_PHASE}> es C<"END">.
-Los bloques C<UNITCHECK>, C<CHECK> y C<INIT> son útiles para capturar la transición entre la fase de compilación y de ejecución del programa principal.
+Los bloques C<UNITCHECK>, C<CHECK> e C<INIT> son útiles para capturar la transición entre la fase de compilación y la de ejecución del programa principal.
-C<UNITCHECK> blocks are run just after the unit which defined them has
-been compiled. El archivo del programa principal y cada módulo que carga son unidades de compilación, como lo son las cadenas C<eval>, código compilado usando la construcción C<(?{ })> en una expresión regular, llamadas a C<do FILE>, C<require FILE> y código tras la opción C<-e> en la línea de comando.
+Los bloques C<UNITCHECK> se ejecutan inmediatamente después de que se haya compilado la unidad que los definió. El archivo del programa principal y cada módulo que carga son unidades de compilación, como lo son las funciones C<eval> de cadena, el código compilado con la construcción C<(?{ })> en una expresión regular, las llamadas a C<do ARCHIVO>, C<require ARCHIVO> y el código que haya a continuación del modificador C<-e> en la línea de comandos.
-Los bloques de código C<BEGIN> y C<UNITCHECK> no están directamente relacionados con la fase del intérprete. Puede crearse y ejecutarse durante cualquier fase.
+Los bloques C<BEGIN> y C<UNITCHECK> no están directamente relacionados con la fase del intérprete. Se pueden crear y ejecutar en cualquier fase.
-Los bloques de código C<CHECK> justo tras la fase B<inicial> de compilación de Perl y antes de que comience el tiempo de ejecución, en orden LIFO. Los bloques de código C<CHECK> se usan en el conjunto de herramientas del compilador de Perl para guardar el estado compilado del programa.
+Los bloques de código C<CHECK> se ejecutan inmediatamente después de que finalice la fase B<inicial> de compilación de Perl y antes de que comience el tiempo de ejecución, en orden LIFO. Los bloques de código C<CHECK> se usan en el compilador de Perl para guardar el estado compilado del programa.
-Dentro de un bloque C<CHECK> el valor de C<${^GLOBAL_PHASE}> es C<"CHECK">.
+Dentro de un bloque C<CHECK>, el valor de C<${^GLOBAL_PHASE}> es C<"CHECK">.
-Los bloques C<INIT> se ejecutan justo antes de iniciar el tiempo de ejecución, en orden "primero en entrar, primero en salir " (FIFO).
+Los bloques C<INIT> se ejecutan justo antes de iniciar el tiempo de ejecución de Perl, en orden "primero en entrar, primero en salir " (FIFO, I<first in, first out>).
-Dentro de un bloque C<INIT> el valor de C<${^GLOBAL_PHASE}> Será C<"INIT">.
+Dentro de un bloque C<INIT> el valor de C<${^GLOBAL_PHASE}> será C<"INIT">.
-Los bloques C<CHECK> y C<INIT> en el código compilado por C<require>, cadenas C<do> o cadenas C<eval> no se ejecutarán si ocurren tras el final de la fase principal de compilación; esto puede suponer un problema en el entorno mod_perl y otros entornos permanentes que usan esas funcionas para cargar código en tiempo de ejecución.
+Los bloques C<CHECK> e C<INIT> en código compilado por C<require> y en funciones C<do> o C<eval> de cadena no se ejecutarán si están después del final de la fase principal de compilación; esto puede suponer un problema en el entorno mod_perl y otros entornos permanentes que usan esas funciones para cargar código en tiempo de ejecución.
-Cuando se usan las opciones B<-n> y B<-p> en Perl, C<BEGIN> y C<END> funcionan como lo harían en B<awk>, como un caso degenerado.
-Los bloques C<BEGIN> y C<CHECK> se ejecutan cuando usa la opción B<-c> para llevar a cabo únicamente una compilación de chequeo de la sintaxis, aunque no se ejecute su código principal.
+Cuando se usan los modificadores B<-n> y B<-p> en Perl, C<BEGIN> y C<END> funcionan como lo harían en B<awk>, es decir, como un caso degenerado.
+Los bloques C<BEGIN> y C<CHECK> se ejecutan cuando se usa el modificador B<-c> para llevar a cabo únicamente una compilación de comprobación de la sintaxis, aunque no se ejecute el código principal.
-El programa B<begincheck> expone esto de forma clara, eventualmente:
+El programa B<begincheck> expone esto de forma clara (o eso esperamos):
#!/usr/bin/perl
# begincheck
- print "10. Código normal se ejecuta en tiempo de ejecución.\n";
+ print "10. El código normal se ejecuta en tiempo de ejecución.\n";
- END { print "16. Así que este es el final del cuento.\n" }
+ END { print "16. Y este cuento se ha acabado.\n" }
INIT { print " 7. Los bloques INIT se ejecutan en orden FIFO antes del tiempo de ejecución.\n" }
UNITCHECK {
- print " 4. Y, por tanto, antes que cualquier bloque CHECK.\n"
+ print " 4. Y, por tanto, antes que los bloques CHECK.\n"
}
- CHECK { print " 6. Esta es la sexta.\n" } línea
+ CHECK { print " 6. Esta es la sexta línea.\n" }
- print "11. Se ejecuta en orden, por supuesto.\n";
+ print "11. Por supuesto, se ejecuta por orden.\n";
BEGIN { print " 1. Los bloques BEGIN se ejecutan en orden FIFO durante la compilación.\n" }
- END { print "15. Lea perlmod para completar la historia.\n" }
- CHECK { print " 5. Los bloques CHECK se ejecutan en modo LIFO tras la compilación.\n" }
- INIT { print " 8. Se ejecuta esto de nuevo, usando la opción -c de Perl.\n" }
+ END { print "15. Lea perlmod para obtener más información.\n" }
+ CHECK { print " 5. Los bloques CHECK se ejecutan en orden LIFO tras la compilación.\n" }
+ INIT { print " 8. Volvemos a ejecutar esto, ahora con el modificador -c de perl.\n" }
- print "12. Esto es código anti-ofuscado.\n";
+ print "12. Esto es lo contrario de código ofuscado.\n";
- END { print "14. Los bloques END Se ejecutan en orden LIFO antes de finalizar.\n" }
+ END { print "14. Los bloques END se ejecutan en orden LIFO al finalizar.\n" }
BEGIN { print " 2. Así que esta línea será la segunda.\n" }
UNITCHECK {
- print " 3. Los bloques UNITCHECK se ejecutan en modo LIFO tras la compilación de cada archivo.\n"
+ print " 3. Los bloques UNITCHECK se ejecutan en orden LIFO tras compilar cada archivo.\n"
}
- INIT { print " 9. Verá la diferencia de esta forma.\n" }
+ INIT { print " 9. Verá la diferencia inmediatamente.\n" }
- print "13. Sólo parece confuso.\n";
+ print "13. Parece lioso, pero no lo es en realidad.\n";
__END__
=head2 Clases en Perl
-X<class> X<@ISA>
+X<class> X<clase> X<@ISA>
-No hay sintaxis especial para clases en Perl, pero un paquete puede actuar como una clase si proporciona subrutinas que se comportan como métodos. Estos paquetes también pueden derivar alguno de sus métodos de otra clase (paquete) listando los nombres de estos paquetes en su array global @ISA (que debe ser global al paquete, y no una variable léxica).
+No hay una sintaxis especial para clases en Perl, pero un paquete puede actuar como una clase si proporciona subrutinas que se comportan como métodos. Un paquete así también pueden derivar alguno de sus métodos de otra clase (paquete) especificando el nombre de este paquete en su array global @ISA, que debe ser una variable global (no léxica) del paquete.
-Consulte L<perlootut> y L<perlobj> para obtener más información al respecto.
+Encontrará más información en L<perlootut> y L<perlobj>.
=head2 Módulos Perl
X<module> X<módulo>
-Un módulo es simplemente un conjunto de funciones relacionadas y ubicadas en un archivo de librería, como un paquete Perl con el mismo nombre que el archivo. Está específicamente diseñado para poder ser reutilizado por otros módulos o programas. Podría hacer esto proporcionando un mecanismo para exportar alguno de sus símbolos dentro de la tabla de símbolos o cualquier paquete que lo use, o podría funcionar como la definición de una clase y hacer su semántica disponible implícitamente mediante llamadas a métodos en la clase y en sus objetos, sin exportar nada de forma explícita. O pueden usarse ambos mecanismos.
+Un módulo no es más que un conjunto de funciones relacionadas y ubicadas en un archivo de biblioteca, es decir, un paquete Perl con el mismo nombre que el archivo. Está diseñado específicamente para que otros módulos o programas lo puedan reutilizar. Para ello puede proporcionar un mecanismo que exporte algunos de sus símbolos a la tabla de símbolos de cualquier paquete que lo use, o puede funcionar como una definición de clase y hacer que su semántica esté disponible implícitamente mediante llamadas a métodos de la clase y sus objetos, sin exportar nada de forma explícita. También se pueden combinar ambos mecanismos.
-Por ejemplo, para comenzar un módulo tradicional, no orientado a objetos, llamado Algun::Modulo, cree un archivo llamado F<Algun/Modulo> y comience con esta plantilla:
+Por ejemplo, para empezar a desarrollar un módulo tradicional, no orientado a objetos, llamado Mi::Modulo, cree el archivo F<Mi/Modulo.pm> y use esta plantilla:
- package Algun::Modulo; # se asume Algun/Modulo.pm
+ package Mi::Modulo; # se supone que está en Mi/Modulo.pm
use strict;
use warnings;
@@ -251,125 +247,124 @@ Por ejemplo, para comenzar un módulo tradicional, no orientado a objetos, llama
BEGIN {
require Exporter;
- # establece la versión para comprobación de versiones
+ # establecer la versión para la comprobación de versión
our $VERSION = 1.00;
- # Hereda de Exporter para exportar funciones y variables
+ # heredar de Exporter para exportar funciones y variables
our @ISA = qw(Exporter);
- # Funciones y variables que se exportan de forma predeterminada
+ # funciones y variables que se exportan de forma predeterminada