POD2-ES

 view release on metacpan or  search on metacpan

lib/POD2/ES/perlfunc.pod  view on Meta::CPAN

CUÁL,QUIÉN,PRIORIDAD>, L<C<sleep>|/sleep EXPR>, L<C<system>|/system LISTA>,
L<C<times>|/times>, L<C<wait>|/wait>, L<C<waitpid>|/waitpid PID,INDICADORES>

=item Palabras clave relativas a los módulos Perl
X<module> X<módulo>

=for Pod::Functions =Modules

L<C<do>|/do EXPR>, L<C<import>|/import LISTA>, L<C<no>|/no Módulo VERSIÓN
LISTA>, L<C<package>|/package ESPACIO_NOMBRES>, L<C<require>|/require
VERSIÓN>, L<C<use>|/use Módulo VERSIÓN LISTA>

=item Palabras clave relativas a las clases y orientación a objetos
X<object> X<class> X<package> X<objeto> X<clase> X<paquete>

=for Pod::Functions =Objects

L<C<bless>|/bless REF,NOMBRE_CLASE>, L<C<dbmclose>|/dbmclose HASH>,
L<C<dbmopen>|/dbmopen HASH,NOMBRE_BASE_DATOS,MÁSCARA>, L<C<package>|/package
ESPACIO_NOMBRES>, L<C<ref>|/ref EXPR>, L<C<tie>|/tie
VARIABLE,NOMBRE_CLASE,LISTA>, L<C<tied>|/tied VARIABLE>, L<C<untie>|/untie
VARIABLE>, L<C<use>|/use Módulo VERSIÓN LISTA>

=item Funciones de bajo nivel de sockets
X<socket> X<sock>

=for Pod::Functions =Socket

L<C<accept>|/accept NUEVOSOCKET,SOCKETGENÉRICO>, L<C<bind>|/bind
SOCKET,NOMBRE>, L<C<connect>|/connect SOCKET,NOMBRE>,
L<C<getpeername>|/getpeername SOCKET>, L<C<getsockname>|/getsockname SOCKET>,
L<C<getsockopt>|/getsockopt SOCKET,NIVEL,OPCIÓN>, L<C<listen>|/listen
SOCKET,TAMAÑO_COLA>, L<C<recv>|/recv SOCKET,ESCALAR,LONGITUD,INDICADORES>,
L<C<send>|/send SOCKET,MSG,INDICADORES,DESTINO>, L<C<setsockopt>|/setsockopt
SOCKET,NIVEL,OPCIÓN_NOMBRE,OPCIÓN_VALOR>, L<C<shutdown>|/shutdown
SOCKET,CÓMO>, L<C<socket>|/socket SOCKET,DOMINIO,TIPO,PROTOCOLO>,
L<C<socketpair>|/socketpair SOCKET1,SOCKET2,DOMINIO,TIPO,PROTOCOLO>

=item Funciones de comunicación interprocesos System V
X<IPC> X<System V> X<semaphore> X<shared memory> X<memory> X<message> X<semáforo> X<memoria compartida> X<memoria> X<mensaje>

=for Pod::Functions =SysV

L<C<msgctl>|/msgctl ID,CMD,ARG>, L<C<msgget>|/msgget CLAVE,INDICADORES>,
L<C<msgrcv>|/msgrcv ID,VAR,TAMAÑO,TIPO,INDICADORES>, L<C<msgsnd>|/msgsnd
ID,MSG,INDICADORES>, L<C<semctl>|/semctl ID,SEMNUM,CMD,ARG>,
L<C<semget>|/semget CLAVE,NSEMS,INDICADORES>, L<C<semop>|/semop
CLAVE,OPSTRING>, L<C<shmctl>|/shmctl ID,CMD,ARG>, L<C<shmget>|/shmget
CLAVE,TAMAÑO,INDICADORES>, L<C<shmread>|/shmread ID,VAR,POSICIÓN,TAMAÑO>,
L<C<shmwrite>|/shmwrite ID,CADENA,POSICIÓN,TAMAÑO>

=item Obtener información de usuarios y grupos
X<user> X<group> X<password> X<uid> X<gid> X<passwd> X</etc/passwd> X<usuario> X<grupo> X<contraseña>

=for Pod::Functions =User

L<C<endgrent>|/endgrent>, L<C<endhostent>|/endhostent>,
L<C<endnetent>|/endnetent>, L<C<endpwent>|/endpwent>, L<C<getgrent>|/getgrent>,
L<C<getgrgid>|/getgrgid GID>, L<C<getgrnam>|/getgrnam NOMBRE>,
L<C<getlogin>|/getlogin>, L<C<getpwent>|/getpwent>, L<C<getpwnam>|/getpwnam
NOMBRE>, L<C<getpwuid>|/getpwuid UID>, L<C<setgrent>|/setgrent>,
L<C<setpwent>|/setpwent>

=item Obtener información de la red
X<network> X<protocol> X<host> X<hostname> X<IP> X<address> X<service> X<red> X<protocolo> X<servidor> X<dirección> X<servicio>

=for Pod::Functions =Network

L<C<endprotoent>|/endprotoent>, L<C<endservent>|/endservent>,
L<C<gethostbyaddr>|/gethostbyaddr DIRECCIÓN,TIPODIR>,
L<C<gethostbyname>|/gethostbyname NOMBRE>, L<C<gethostent>|/gethostent>,
L<C<getnetbyaddr>|/getnetbyaddr DIRECCIÓN,TIPODIR>,
L<C<getnetbyname>|/getnetbyname NOMBRE>, L<C<getnetent>|/getnetent>,
L<C<getprotobyname>|/getprotobyname NOMBRE>,
L<C<getprotobynumber>|/getprotobynumber NÚMERO>,
L<C<getprotoent>|/getprotoent>, L<C<getservbyname>|/getservbyname
NOMBRE,PROTOCOLO>, L<C<getservbyport>|/getservbyport PUERTO,PROTOCOLO>,
L<C<getservent>|/getservent>, L<C<sethostent>|/sethostent SIGUEABIERTO>,
L<C<setnetent>|/setnetent SIGUEABIERTO>, L<C<setprotoent>|/setprotoent
SIGUEABIERTO>, L<C<setservent>|/setservent SIGUEABIERTO>

=item Funciones relacionadas con el tiempo
X<time> X<date>

=for Pod::Functions =Time

L<C<gmtime>|/gmtime EXPR>, L<C<localtime>|/localtime EXPR>, L<C<time>|/time>,
L<C<times>|/times>

=item Palabras clave que no son funciones

=for Pod::Functions =!Non-functions

C<and>, C<AUTOLOAD>, C<BEGIN>, C<CHECK>, C<cmp>, C<CORE>, C<__DATA__>,
C<default>, C<DESTROY>, C<else>, C<elseif>, C<elsif>, C<END>, C<__END__>,
C<eq>, C<for>, C<foreach>, C<ge>, C<given>, C<gt>, C<if>, C<INIT>, C<le>,
C<lt>, C<ne>, C<not>, C<or>, C<UNITCHECK>, C<unless>, C<until>, C<when>,
C<while>, C<x>, C<xor>

=back

=head2 Portabilidad
X<portability> X<Unix> X<portable> X<portabilidad>

Perl nació en Unix y por eso puede acceder a todas las llamadas normales del
sistema Unix. En entornos no Unix, la funcionalidad de algunas llamadas del
sistema Unix pueden no estar disponibles, o los detalles de la funcionalidad
disponible pueden diferir ligeramente. Las funciones Perl afectadas por esto
son:

L<C<-I<X>>|/-X IDENTIFICADOR_ARCHIVO>, L<C<binmode>|/binmode
IDENTIFICADOR_ARCHIVO, CAPA>, L<C<chmod>|/chmod LISTA>, L<C<chown>|/chown
LISTA>, L<C<chroot>|/chroot NOMBRE_ARCHIVO>, L<C<crypt>|/crypt
TEXTOPLANO,SALTO>, L<C<dbmclose>|/dbmclose HASH>, L<C<dbmopen>|/dbmopen
HASH,NOMBRE_BASE_DATOS,MÁSCARA>, L<C<dump>|/dump ETIQUETA>,
L<C<endgrent>|/endgrent>, L<C<endhostent>|/endhostent>,
L<C<endnetent>|/endnetent>, L<C<endprotoent>|/endprotoent>,
L<C<endpwent>|/endpwent>, L<C<endservent>|/endservent>, L<C<exec>|/exec LISTA>,
L<C<fcntl>|/fcntl IDENTIFICADOR_ARCHIVO,FUNCIÓN,ESCALAR>, L<C<flock>|/flock
IDENTIFICADOR_ARCHIVO,OPERACIÓN>, L<C<fork>|/fork>, L<C<getgrent>|/getgrent>,
L<C<getgrgid>|/getgrgid GID>, L<C<gethostbyname>|/gethostbyname NOMBRE>,
L<C<gethostent>|/gethostent>, L<C<getlogin>|/getlogin>,
L<C<getnetbyaddr>|/getnetbyaddr DIRECCIÓN,TIPODIR>,
L<C<getnetbyname>|/getnetbyname NOMBRE>, L<C<getnetent>|/getnetent>,
L<C<getppid>|/getppid>, L<C<getpgrp>|/getpgrp PID>,
L<C<getpriority>|/getpriority CUÁL,QUIÉN>,
L<C<getprotobynumber>|/getprotobynumber NÚMERO>,
L<C<getprotoent>|/getprotoent>, L<C<getpwent>|/getpwent>,
L<C<getpwnam>|/getpwnam NOMBRE>, L<C<getpwuid>|/getpwuid UID>,
L<C<getservbyport>|/getservbyport PUERTO,PROTOCOLO>,
L<C<getservent>|/getservent>, L<C<getsockopt>|/getsockopt
SOCKET,NIVEL,OPCIÓN>, L<C<glob>|/glob EXPR>, L<C<ioctl>|/ioctl
IDENTIFICADOR_ARCHIVO,FUNCIÓN,ESCALAR>, L<C<kill>|/kill SEÑAL, LISTA>,
L<C<link>|/link ARCHIVO_VIEJO,ARCHIVO_NUEVO>, L<C<lstat>|/lstat
IDENTIFICADOR_ARCHIVO>, L<C<msgctl>|/msgctl ID,CMD,ARG>, L<C<msgget>|/msgget
CLAVE,INDICADORES>, L<C<msgrcv>|/msgrcv ID,VAR,TAMAÑO,TIPO,INDICADORES>,
L<C<msgsnd>|/msgsnd ID,MSG,INDICADORES>, L<C<open>|/open
IDENTIFICADOR_ARCHIVO,EXPR>, L<C<pipe>|/pipe
IDENTIFICADOR_LECTURA,IDENTIFICADOR_ESCRITURA>, L<C<readlink>|/readlink EXPR>,
L<C<rename>|/rename NOMBRE_VIEJO,NOMBRE_NUEVO>, L<C<select>|/select
RBITS,WBITS,EBITS,TIEMPO_ESPERA>, L<C<semctl>|/semctl ID,SEMNUM,CMD,ARG>,
L<C<semget>|/semget CLAVE,NSEMS,INDICADORES>, L<C<semop>|/semop
CLAVE,OPSTRING>, L<C<setgrent>|/setgrent>, L<C<sethostent>|/sethostent
SIGUEABIERTO>, L<C<setnetent>|/setnetent SIGUEABIERTO>, L<C<setpgrp>|/setpgrp
PID,PGRP>, L<C<setpriority>|/setpriority CUÁL,QUIÉN,PRIORIDAD>,
L<C<setprotoent>|/setprotoent SIGUEABIERTO>, L<C<setpwent>|/setpwent>,
L<C<setservent>|/setservent SIGUEABIERTO>, L<C<setsockopt>|/setsockopt
SOCKET,NIVEL,OPCIÓN_NOMBRE,OPCIÓN_VALOR>, L<C<shmctl>|/shmctl ID,CMD,ARG>,
L<C<shmget>|/shmget CLAVE,TAMAÑO,INDICADORES>, L<C<shmread>|/shmread
ID,VAR,POSICIÓN,TAMAÑO>, L<C<shmwrite>|/shmwrite
ID,CADENA,POSICIÓN,TAMAÑO>, L<C<socket>|/socket
SOCKET,DOMINIO,TIPO,PROTOCOLO>, L<C<socketpair>|/socketpair
SOCKET1,SOCKET2,DOMINIO,TIPO,PROTOCOLO>, L<C<stat>|/stat
IDENTIFICADOR_ARCHIVO>, L<C<symlink>|/symlink ARCHIVO_VIEJO,ARCHIVO_NUEVO>,
L<C<syscall>|/syscall NÚMERO, LISTA>, L<C<sysopen>|/sysopen
IDENTIFICADOR_ARCHIVO,NOMBRE_ARCHIVO,MODO>, L<C<system>|/system LISTA>,
L<C<times>|/times>, L<C<truncate>|/truncate IDENTIFICADOR_ARCHIVO,LONGITUD>,
L<C<umask>|/umask EXPR>, L<C<unlink>|/unlink LISTA>, L<C<utime>|/utime LISTA>,
L<C<wait>|/wait>, L<C<waitpid>|/waitpid PID,INDICADORES>

Para más información sobre la portabilidad de estas funciones, ver
L<perlport> y cualquier otra documentación específica de la plataforma que
esté disponible.

=head2 Lista de funciones de Perl en orden alfabético

=over

=item -X IDENTIFICADOR_ARCHIVO
X<-r>X<-w>X<-x>X<-o>X<-R>X<-W>X<-X>X<-O>X<-e>X<-z>X<-s>X<-f>X<-d>X<-l>X<-p>
X<-S>X<-b>X<-c>X<-t>X<-u>X<-g>X<-k>X<-T>X<-B>X<-M>X<-A>X<-C>

=item -X EXPR

=item -X IDENTIFICADOR_DIR

=item -X

=for Pod::Functions a file test (-r, -x, etc)

Un test de archivo, donde X es una de las letras listadas abajo. Este operador
unario toma un argumento, bien sea un nombre de archivo o un identificador de
archivo o de directorio, y comprueba si hay algo de cierto en el archivo
asociado. Si el argumento se omite, se prueba L<C<$_>|perlvar/$_>, excepto para
C<-t>, que prueba STDIN. Mientras no se diga lo contrario, se devuelve C<1>
para verdadero y C<''> para falso. Si el archivo no existe o no se puede
examinar, devuelve C<undef> y actualiza L<C<undef>|/undef EXPR> and sets
L<C<$!>|perlvar/$!> (errno). A pesar de los nombres graciosos, la precedencia
es la misma que cualquier otro operador unario con nombre. El operador puede

lib/POD2/ES/perlfunc.pod  view on Meta::CPAN


Devuelve el coseno de EXPR (expresado en radianes). Si EXPR se omite, devuelve
el coseno de L<C<$_>|perlvar/$_>.

Para la inversa de la operación coseno, puede usar la función
L<C<Math::Trig::acos>|Math::Trig>, o usar esta relación:

    sub acos { atan2( sqrt(1 - $_[0] * $_[0]), $_[0] ) }

=item crypt TEXTOPLANO,SALTO
X<crypt> X<digest> X<hash> X<salt> X<plaintext> X<password> X<decrypt> X<cryptography> X<passwd> X<contraseña>

=for Pod::Functions one-way passwd-style encryption

Crea una cadena resumen exactamente igual que la función L<crypt(3)> de la
biblioteca C (asumiendo que realmente tenga una versión de la que no haya sido
extirpada por ser considerada un arma potencial).

L<C<crypt>|/crypt TEXTOPLANO,SALTO> es una función hash de un solo sentido. El
TEXTOPLANO y el SALTO se convierten en una pequeña cadena, llamada I<digest>
(compendio, resumen), que de devuelve. Los mismos TEXTOPLANO y SALTO siempre
devolverán el mismo string, pero no hay una forma (conocida) de obtener el
TEXTOPLANO original desde el hash. Pequeños cambios en TEXTPLANO o SALTO
resultarán en grandes cambios en el I<digest>.

No existe la función decrypt. Esta función no es muy útil para criptografía
(para esto, mire en los módulos F<Crypt> en su espejo CPAN más cercano) y el
nombre "crypt" es un poco equívoco. En cambio se usa principalmente para
comprobar si dos trozos de textos son el mismo sin tener que transmitirlo o
almacenarlo. Un ejemplo es comprobando si se ha dado una contraseña correcta.
El I<digest> de una contraseña se almacena, no la propia contraseña. El
usuario escribe la contraseña que es en-L<C<crypt>|/crypt
TEXTOPLANO,SALTO>-tada con el mismo salto con el que se almacenó el I<digest>.
Si los dos I<digest> coinciden, la contraseña es correcta.

Cuando verifique una cadena I<digest> debe usar el propio I<digest> como salto
(como C<crypt($plano, $digest) eq $digest>). El SALTO usado para crear el
I<digest> es visible como parte del I<digest>. Esto asegura que
L<C<crypt>|/crypt TEXTOPLANO,SALTO> creará el hash de la nueva cadena con el
mismo salto que el I<digest>. Esto permite a su código trabajar con el
estándar L<C<crypt>|/crypt TEXTOPLANO,SALTO> y con implementaciones más
exóticas. En otras palabras, no asuma nada sobre la cadena devuelta, ni sobre
la cantidad de bytes de SALTO pueden importar.

Tradicionalmente, el resultado es una cadena de 13 bytes: los dos primeros son
el salto, seguido de 11 bytes del conjunto C<[./0-9A-Za-z]>, y sólo los
primeros ocho bytes del I<digest> interesan. Pero esquemas alternativos de
cálculo de hash (como MD5), esquemas de seguridad de alto nivel (como C2) e
implementaciones en plataformas no UNIX pueden producir cadenas diferentes.

Cuando escoja un nuevo salto cree un string de dos caracteres elegidos
aleatoriamente del conjunto C<[./0-9A-Za-z]> (como por ejemplo C<join '', ('.',
'/', 0..9, 'A'..'Z', 'a'..'z')[rand 64, rand 64]>). Este conjunto de caracteres
es sólo una recomendación; los caracteres permitidos en el salto dependen
solamente de la función crypt del sistema y Perl no puede restringir el salto
que L<C<crypt>|/crypt TEXTOPLANO,SALTO> acepte.

Aquí hay un ejemplo que se asegura que quien corra el programa conoce su
contraseña:

    my $pwd = (getpwuid($<))[1];

    system "stty -echo";
    print "Contraseña: ";
    chomp(my $palabra = <STDIN>);
    print "\n";
    system "stty echo";

    if (crypt($palabra, $pwd) ne $pwd) {
        die "Lo siento...\n";
    } else {
        print "correcto\n";
    }

Naturalmente es muy imprudente dar la propia contraseña a cualquiera que lo
pregunte.

La función L<C<crypt>|/crypt TEXTOPLANO,SALTO> no es apropiada para calcular
el hash de grandes volúmenes de información, teniendo en cuenta que no es
posible luego volver a obtener la misma información. Mire en el módulo
L<Digest> por algoritmos más robustos.

Si usa L<C<crypt>|/crypt TEXTOPLANO,SALTO> en una cadena Unicode (que
I<potencialmente> tiene caracteres con códigos de carácter superiores al
255), Perl intenta darle sentido a la situación intentando hacer una
degradación (una copia) de la cadena a una cadena de bytes antes de llamar a
L<C<crypt>|/crypt TEXTOPLANO,SALTO> (sobre esa copia). Si esto funciona, bien.
Si no, L<C<crypt>|/crypt TEXTOPLANO,SALTO> muere con el mensaje L<C<Wide
character in crypt>|perldiag/Wide character in %s>.

Cuestiones de portabilidad: L<perlport/crypt>.

=item dbmclose HASH
X<dbmclose>

=for Pod::Functions breaks binding on a tied dbm file

[Esta función ha sido largamente supeditada por la función L<C<untie>|/untie
VARIABLE>].

Rompe la ligadura entre un archivo DBM y un hash.

Cuestiones de portabilidad: L<perlport/dbmclose>.

=item dbmopen HASH,NOMBRE_BASE_DATOS,MÁSCARA
X<dbmopen> X<dbm> X<ndbm> X<sdbm> X<gdbm>

=for Pod::Functions create binding on a tied dbm file

[Esta función se ha superado de largo por la función L<C<tie>|/tie
VARIABLE,NOMBRE_CLASE,LISTA>].

Liga un archivo L<dbm(3)>, L<ndbm(3)>, L<sdbm(3)>, L<gdbm(3)> o Berkeley DB a
un hash. HASH es el nombre del hash.  (A diferencia de un L<C<open>|/open
IDENTIFICADOR_ARCHIVO,EXPR> normal, el primer argumento I<no> es un
identificador de archivo, aunque lo parezca). NOMBREDB es el nombre de la base
de datos (sin la extensión F<.dir> o F<.pag> si las tuviera). Si la base de
datos no existe, se crea con la protección especificada por MÁSCARA (y
modificada por L<C<umask>|/umask EXPR>). Para evitar la creación de la base de
datos en caso de que no existiera, es posible especificar MODO 0, y la función
devolverá un valor falso si no puede encontrar una base de datos existente. Si

lib/POD2/ES/perlfunc.pod  view on Meta::CPAN

y C<~~> tratan al CUADRO entero como una única línea. Puede por eso necesitar
usar múltiples formlines para implementar un único registro format, como lo
hace el propio compilador de L<C<format>|/format>.

Tenga cuidado si pone dobles comillas alrededor del cuadro, porque un carácter
C<@> puede ser tomado como el comienzo del nombre de un array.
L<C<formline>|/formline DIBUJO,LISTA> siempre devuelve verdadero. Vea
L<perlform> para otros ejemplos.

Si está intentando usar esto en lugar de L<C<write>|/write
IDENTIFICADOR_ARCHIVO> para capturar la salida, puede encontrar que sea más
sencillo abrir un identificador de archivo en un escalar (C<< open $fh, ">",
\$salida >>) y escribir en él.

=item getc IDENTIFICADOR_ARCHIVO
X<getc> X<getchar> X<character> X<file, read> X<archivo, lectura> X<carácter>

=item getc

=for Pod::Functions get the next character from the filehandle

Devuelve el siguiente carácter desde el archivo de entrada asociado a
IDENTIFICADOR_ARCHIVO, o el valor indefinido al final del archivo, o si
ocurrió un error (en este último caso, se establece L<C<$!>|perlvar/$!>). Si
se omite IDENTIFICADOR_ARCHIVO, se lee desde STDIN. Esto no es particularmente
eficiente. Sin embargo, esto no se puede usar para extraer caracteres sueltos
sin esperar a que el usuario pulse la tecla de I<Enter>. Para esto, intente
algo como esto:

    if ($BSD_STYLE) {
        system "stty cbreak </dev/tty >/dev/tty 2>&1";
    }
    else {
        system "stty", '-icanon', 'eol', "\001";
    }

    my $tecla = getc(STDIN);

    if ($BSD_STYLE) {
        system "stty -cbreak </dev/tty >/dev/tty 2>&1";
    }
    else {
        system 'stty', 'icanon', 'eol', '^@'; # ASCII NUL
    }
    print "\n";

La determinación de cómo poner C<$BSD_STYLE> se deja como ejercicio al
lector.

La función L<C<POSIX::getattr>|POSIX/C<getattr>> puede hacer esto de forma
más portable en sistemas compatibles con POSIX. Vea también el módulo
L<C<Term::ReadKey>|Term::ReadKey> en CPAN.

=item getlogin
X<getlogin> X<login>

=for Pod::Functions return who logged in at this tty

Implementa la función de la biblioteca C del mismo nombre, que en la mayoría
de los sistemas devuelve el login actual desde F</etc/utmp>, si existe. Si
devuelve la cadena vacía, utilice L<C<getpwuid>|/getpwuid UID>.

    my $login = getlogin || getpwuid($<) || "Kilroy";

No considere usar L<C<getlogin>|/getlogin> para autenticación: no es tan
seguro como L<C<getpwuid>|/getpwuid UID>.

Cuestiones de portabilidad: L<perlport/getlogin>.

=item getpeername SOCKET
X<getpeername> X<peer>

=for Pod::Functions find the other end of a socket connection

Devuelve la dirección socket empaquetada del otro extremo de la conexión
SOCKET.

    use Socket;
    my $hersockaddr    = getpeername($sock);
    my ($port, $iaddr) = sockaddr_in($hersockaddr);
    my $herhostname    = gethostbyaddr($iaddr, AF_INET);
    my $herstraddr     = inet_ntoa($iaddr);

=item getpgrp PID
X<getpgrp> X<group> X<grupo>

=for Pod::Functions get process group

Devuelve el actual grupo del proceso especificado por el PID. Use un PID de
C<0> para obtener el grupo del proceso actual. Elevará una excepción si se
usa en una máquina que no implemente L<getpgrp(2)>. Si PID se omite, devuelve
el grupo del proceso actual. Note que la versión POSIX de
L<C<getpgrp>|/getpgrp PID> no acepta un argumento PID, por lo que sólo
C<PID==0> es verdaderamente portable.

Cuestiones de portabilidad: L<perlport/getpgrp>.

=item getppid
X<getppid> X<parent> X<pid> X<padre>

=for Pod::Functions get parent process ID

Devuelve el identificador de proceso del proceso padre.

Nota para los usuarios de Linux: Entre v5.8.1 y v5.16.0 Perl evitará la
semántica de hilos no compatible con POSIX que usan una minoría de sistemas
Linux (y sistemas Debian GNU/kFreeBSD) que utilizan LinuxThreads; esta
emulación se ha eliminado. Vea la documentación de L<$$|perlvar/$$> para más
detalles.

Cuestiones de portabilidad: L<perlport/getppid>.

=item getpriority CUÁL,QUIÉN
X<getpriority> X<priority> X<nice> X<prioridad>

=for Pod::Functions get current nice value

Devuelve la prioridad actual de un proceso, un grupo de procesos o un usuario.
(Vea L<getpriority(2)>). Lanzará una excepción fatal si se usa en una
máquina que no implemente L<getpriority(2)>.

Cuestiones de portabilidad: L<perlport/getpriority>.

=item getpwnam NOMBRE
X<getpwnam> X<getgrnam> X<gethostbyname> X<getnetbyname> X<getprotobyname>
X<getpwuid> X<getgrgid> X<getservbyname> X<gethostbyaddr> X<getnetbyaddr>
X<getprotobynumber> X<getservbyport> X<getpwent> X<getgrent> X<gethostent>
X<getnetent> X<getprotoent> X<getservent> X<setpwent> X<setgrent> X<sethostent>
X<setnetent> X<setprotoent> X<setservent> X<endpwent> X<endgrent> X<endhostent>
X<endnetent> X<endprotoent> X<endservent>

=for Pod::Functions get passwd record given user login name

=item getgrnam NOMBRE

=for Pod::Functions get group record given group name

=item gethostbyname NOMBRE

=for Pod::Functions get host record given name

=item getnetbyname NOMBRE

=for Pod::Functions get networks record given name

=item getprotobyname NOMBRE

=for Pod::Functions get protocol record given name

=item getpwuid UID

=for Pod::Functions get passwd record given user ID

=item getgrgid GID

=for Pod::Functions get group record given group user ID

=item getservbyname NOMBRE,PROTOCOLO

=for Pod::Functions get services record given its name

=item gethostbyaddr DIRECCIÓN,TIPODIR

=for Pod::Functions get host record given its address

=item getnetbyaddr DIRECCIÓN,TIPODIR

=for Pod::Functions get network record given its address

=item getprotobynumber NÚMERO

=for Pod::Functions get protocol record numeric protocol

=item getservbyport PUERTO,PROTOCOLO

=for Pod::Functions get services record given numeric port

=item getpwent

=for Pod::Functions get next passwd record

=item getgrent

=for Pod::Functions get next group record

=item gethostent

=for Pod::Functions get next hosts record

=item getnetent

=for Pod::Functions get next networks record

=item getprotoent

=for Pod::Functions get next protocols record

=item getservent

=for Pod::Functions get next services record

=item setpwent

=for Pod::Functions prepare passwd file for use

=item setgrent

=for Pod::Functions prepare group file for use

=item sethostent SIGUEABIERTO

lib/POD2/ES/perlfunc.pod  view on Meta::CPAN


=for Pod::Functions prepare protocols file for use

=item setservent SIGUEABIERTO

=for Pod::Functions prepare services file for use

=item endpwent

=for Pod::Functions be done using passwd file

=item endgrent

=for Pod::Functions be done using group file

=item endhostent

=for Pod::Functions be done using hosts file

=item endnetent

=for Pod::Functions be done using networks file

=item endprotoent

=for Pod::Functions be done using protocols file

=item endservent

=for Pod::Functions be done using services file

Estas rutinas son las mismas que sus homólogas en la biblioteca del sistema.
En contexto lista, los valores devueltos por varias de ellas son como sigue:

 #    0        1          2           3         4
 my ( $nombre, $password, $gid,       $miembros ) = getgr*
 my ( $nombre, $alias,    $tipoadr,   $red      ) = getnet*
 my ( $nombre, $alias,    $puerto,    $protocolo) = getserv*
 my ( $nombre, $alias,    $protocolo            ) = getproto*
 my ( $nombre, $alias,    $tipoadr,   $longitud, @direcs ) = gethost*
 my ( $nombre, $password, $uid,       $gid,     $cuota,
    $comentario,$gcos,    $dir,       $shell,   $expira ) = getpw*
 #    5        6          7           8         9

(Si la entrada no existe, el valor de retorno es un único valor verdadero, sin
significado).

El significado exacto del campo $gcos varía pero usualmente contiene el nombre
real del usuario (como opuesto al nombre de login) y otra información
perteneciente al usuario. Tenga cuidado, sin embargo, que en muchos sistemas
los usuarios son capaces de cambiar esta información y por eso no puede
confiarse y por eso el $gcos queda contaminado (ver L<perlsec>). La $contrasena
y el $shell, la contraseña codificada del usuario y el shell del login, están
también contaminados, por la misma razón.

En contexto escalar, obtiene el nombre, a menos que la función fuera localizar
por nombre, en cuyo caso obtendrá la otra cosa, cualquiera que sea. (Si la
entrada no existe obtendrá el valor indefinido). Por ejemplo:

    my $uid    = getpwnam($nombre);
    my $nombre = getpwuid($numero);
    my $nombre = getpwent();
    my $gid    = getgrnam($nombre);
    my $nombre = getgrgid($numero);
    my $nombre = getgrent();
    # etc.

En I<getpw*()> los campos $cuota, $comentario y $expiracion son casos
especiales en el sentido que en muchos sistemas no están soportados. Si la
$cuota no está soportada, es un escalar vacío. Si está soportada, usualmente
codifica la cuota de disco. Si el campo $comentario no está soportado, es un
escalar vacío. Si está soportado usualmente codifica algún comentario
administrativo sobre el usuario. En algunos sistemas el campo $cuota puede ser
$cambio o $edad, campos que tienen que ver con la caducidad de la contraseña.
En algunos sistemas el campo $comentario puede ser $clase. El campo $expira, si
está presente, codifica el periodo de expiración de la cuenta o de la
contraseña. Para ver la disponibilidad y el significado exacto de estos
campos, en su sistema, por favor consulte L<getpwnam(3)> y su archivo del
sistema F<pwd.h>. Puede también encontrar, dentro de Perl, que es lo que
significan sus campos $cuota, $comentario y $expira usando el módulo
L<C<Config>|Config> y los valores C<d_pwquota>, C<d_pwage>, C<d_pwchange>,
C<d_pwcomment> y C<d_pwexpire>. Archivos de contraseñas shadow sólo se
soportan si el proveedor los implementa con la intuitiva moda de que llamando a
las rutinas regulares de la biblioteca C se obtienen las versiones shadow si
está corriendo con bajos privilegios o si existe la función L<shadow(3)> tal
como se encuentra en System V (esto incluye Solaris y Linux). Los sistemas que
implementen un sistema de contraseñas shadow propietario es impropable que
sean soportados.

El valor de $miembros devuelto por I<getgr*()> es una lista separada por
espacios de los nombres de login de los miembros del grupo.

Para las funciones I<gethost*()>, si la variable C<h_errno> se soporta en C, se
devolverá vía L<C<$?>|perlvar/$?> si la llamada a la función falla. El valor
devuelto C<@addrs> por una exitosa llamada es una lista de las direcciones en
crudo devueltas por la correspondiente llamada a la biblioteca. En el dominio
de Internet, cada dirección son cuatro bytes de longitud; puede
desempaquetarlos diciendo algo como:

    my ($w,$x,$y,$z) = unpack('W4',$addr[0]);

La biblioteca Socket hace esto ligeramente más fácilmente:

    use Socket;
    my $iaddr = inet_aton("127.1"); # o la dirección que sea
    my $nombre = gethostbyaddr($iaddr, AF_INET);

    # o de otra manera
    my $straddr = inet_ntoa($iaddr);

En sentido contrario, para resolver un nombre de host a la dirección IP puede
escribir lo siguiente:

    use Socket;
    my $packed_ip = gethostbyname("www.perl.org");
    my $ip_address;
    if (defined $packed_ip) {
        $ip_address = inet_ntoa($packed_ip);
    }

Cerciórese de que se llama a L<C<gethostbyname>|/gethostbyname NOMBRE> en



( run in 0.765 second using v1.01-cache-2.11-cpan-6aa56a78535 )