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!