• Publicidad

Preguntas Perl básicas

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Preguntas Perl básicas

Notapor newperlero » 2011-08-24 07:27 @352

Hola

Cuando empecé con Perl ( hace más bien poco ) me pasaron una serie de preguntas, y fui incapaz de contestarlas todas.

Ahora lo he intentado y he contestado todo, pero no sé si estarán bien todas las respuestas. No soy un gran coder ni un experto en programación, así que si hay algo mal y lo podéis corregir/mejorar la explicación, os lo agradezco.

Además, me parece que estas respuestas contestadas aquí como recurso online, ¡le pueden venir muy bien a más de uno! Porque cuando se empieza, hay muchas dudas, muchas cosas que leer, y la mayoría de las veces se suelen pasar las cosas más básicas por alto. ( Y eso de empezar la casa por el tejado... ¡mal!)

• What is strict? What is warnings?

El pragma strict sirve para prevenir la creación de estructuras inseguras o no recomendables. Por ejemplo, la asignación de un valor a una variable, si esta no se ha inicializado primero.

El pragma warnings, es un reemplazo de la opción de shebang –w, sirve para mostrar advertencias opcionales sobre prácticas insanas en la programación, y posibles errores a la hora de construir estructuras.

• Name a special variable. One other than $_. What is $_?

$^O - Esta variable muestra el sistema operativo en el que se ejecuta el código.
La variable especial $_ contiene el último registro leído de un fichero.

• What is perldoc?

La documentación oficial sobre Perl.

• What is a Perl module?

Es un conjunto de funciones u objetos definidos en un fichero, que al incluirlo en nuestro script con use <nombremodulo>, hará que tengamos accesibles todas las funciones/objetos.

• What is the difference between print and printf?

print() solamente imprime el contenido que se le indica (ya sea a fichero, stdout,stderr), mientras que printf() es capaz de hacer una conversión del tipo de datos. Es muy similar (si no idéntico) al printf() de C.

• What does local mean? Where could you use it?

Local guarda el valor de una variable global y lo sustituye por un valor nuevo a efectos del código que está en el bloque actual y al que llamemos desde tal bloque.

• How do you open a file? What is the return value from open? What is $!?

Para abrir un fichero necesitaremos un filehandle, el modo de apertura y el nombre del mismo. Ej.: open FILE, q[<], ‘input.txt’ or die “$!”;
La variable especial $! nos indica el error que devolvió (si lo hubo) en la última operación.

• What is "null" in Perl? How do you tell if something is "null"?

null es nada, un valor anónimo. Podríamos decir my $a = undef;

• How do you find the size of an array?

Podríamos obtenerlo haciendo print $#array.

• How do you write an infinite loop?

Por ejemplo, while(1){ do_something }

• What is a regular expression that matches any character?

(.)

• How do you remove a key-value pair from a hash?

Con delete(). Ejemplo: delete $hash{llave_a_borrar};

• What is a "pointer" in Perl? What kinds are there? How do you make one? What can you do with them?

Un puntero en Perl no es más que una referencia a un valor, la posición en memoria de un dato.

Existen punteros a escalares, a arrays, a hash y a funciones.

Por ejemplo, para hacer una referencia a un array: my $referencia = \@mi_array;

Lo que se puede hacer con ellos depende de la imaginación del programador, por ejemplo, ahorrar memoria y evitar el paso de parámetros por valor a las funciones.

¡Saludos!
Última edición por newperlero el 2011-08-24 07:55 @372, editado 1 vez en total
newperlero
Perlero nuevo
Perlero nuevo
 
Mensajes: 42
Registrado: 2011-07-15 06:38 @318

Publicidad

Re: Preguntas Perl básicas

Notapor explorer » 2011-08-24 07:46 @365

my() no es lo mismo que local().

Y print .@array no saca el número de elementos de @array (al menos, en Perl 5).

Hay más cosas... que dejo a los demás averiguar si están bien o mal.

Añadiría una pregunta más: ¿qué diferencia hay, al escribir en un texto: 'perl', 'PERL' y 'Perl'? :)

Y te animo a que contestes Cómo identificar a un buen programador de Perl.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Preguntas Perl básicas

Notapor newperlero » 2011-08-24 07:53 @370

Lo de .@array, es verdad, qué raro, juraría que eso lo hice alguna vez...
En cuanto a lo de local() también tienes razón, estaba equivocado...
Edito mi post, para que vaya quedando toda la información correcta.

Y lo de la diferencia entre perl, Perl o PERL, no tengo ni idea. Espero que sea una broma macabra :lol:
newperlero
Perlero nuevo
Perlero nuevo
 
Mensajes: 42
Registrado: 2011-07-15 06:38 @318

Re: Preguntas Perl básicas

Notapor pvaldes » 2011-08-24 08:36 @400

> Y lo de la diferencia entre perl, Perl o PERL, no tengo ni idea. Espero que sea una broma macabra

Una trivialidad sobre cómo llamar al compilador (perl), al lenguaje (Perl) y que nunca hay que escribir PERL porque no es un acrónimo... la típica pregunta de manual.
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580

Re: Preguntas Perl básicas

Notapor explorer » 2011-08-24 09:14 @427

perl no es un compilador, es un intérprete de lenguaje Perl.

Extraído de perlfaq1:
¿Cuál es la diferencia entre "perl" y "Perl"?

Un bit. ¡Ah, no se refería a ASCII! :-) Larry usa "Perl" para designar el lenguaje y "perl" para designar su implementación (es decir, el intérprete). Ésta es la razón por la que Tom dice que "perl sólo se puede analizar con Perl".

Antes de la primera edición de Programming perl, el lenguaje se solía llamar "perl", y su nombre aparecía así en el título porque hacía referencia al intérprete. En el libro, Randal Schwartz escribió el nombre del lenguaje con inicial mayúscula para que destacara mejor en la composición tipográfica. La comunidad adoptó esta convención y la segunda edición pasó a llamarse Programming Perl, con la versión con inicial mayúscula en el nombre para referirse al lenguaje.

Usted puede elegir adoptarla o no. Por ejemplo, por paralelismo podemos intuir que "awk y perl" y "Python y Perl" son aceptables, mientras que "awk y Perl" y "Python y perl" no lo son. Pero nunca escriba "PERL", ya que perl no es un acrónimo (pese al folclore apócrifo y los desarrollos inventados posteriormente).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Preguntas Perl básicas

Notapor salva » 2011-08-25 05:47 @282

explorer escribiste:
Tom dice que "perl sólo se puede analizar con Perl"

¿es al revés, no? "Perl sólo se puede analizar con perl" (la original es "Only perl can parse Perl").

...aunque ahora también tenemos PPI.
Avatar de Usuario
salva
Perlero nuevo
Perlero nuevo
 
Mensajes: 200
Registrado: 2008-01-03 15:19 @680

Re: Preguntas Perl básicas

Notapor explorer » 2011-08-25 05:57 @290

Tienes razón, salva. Ahora le paso el aviso a Enrique para que cambie perlfaq1.pod.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados