En él se comentan una serie de cuestiones que habría que realizar en una entrevista de trabajo para saber si la persona que tenemos delante tiene un buen conocimiento de Perl. Y cuando dice "bueno" se refiere a un nivel medio o medio-alto.
Os pongo aquí las referidas cuestiones, para que, cada uno, se haga se propio examen, y saber si ha llegado a ese nivel de "buen programador de Perl".
- ¿Qué indican los sigilos (caracteres que preceden a las variables) en Perl 5?
- ¿Cuál es la diferencia entre acceder a un elemento de un array con $items[$index] y @items[$index]?
- ¿Cuál es la diferencia entre == y eq?
- ¿Qué es lo que obtienes si evalúas un hash en contexto de lista?
- ¿Cómo encuentras las palabras reservadas en la documentación Perl?
- ¿Cuál es la diferencia entre una función y un método en Perl 5?
- ¿Cuándo Perl 5 reclama la memoria usada por una variable?
- ¿Cómo te aseguras que el ámbito por defecto de una variable es léxico (utilizable solo en un determinado ámbito)?
- ¿Cómo cargas e importas símbolos desde un módulo Perl 5?
- ¿Cómo puedes influir en la lista de directorios desde los cuales perl intenta cargar módulos?
- ¿Cómo encuentras los mensajes de error en la documentación de Perl 5? (Puntos extra si además sabes cómo activar las explicaciones de todos los errores encontrados)
- ¿Qué sucede cuando pasas un array a una función?
- ¿Cómo pasas uno o más arrays distintos a una función?
- ¿Cuál es la diferencia, desde el lado del llamante, entre return; y return undef;?
- ¿Dónde van los test en una distribución estándar de CPAN?
- ¿Cómo ejecutas los test en una distribución estándar de CPAN?
- ¿Qué comandos usas para instalar nuevas distribuciones desde CPAN?
- ¿Por qué se utiliza la forma de tres argumentos de la función incorporada open?
- ¿Cómo detectas (y reportas) errores de las llamadas del sistema como open? (Puntos extra si se sabe cómo activar la detección automática y el reporte de estos errores)
- ¿Cómo lanzas una excepción en Perl 5?
- ¿Cómo capturas una excepción en Perl 5?
- ¿Cuál es la diferencia entre leer un fichero con for y con while?
- ¿Cómo manejas parámetros dentro de un método o función en Perl 5?
- ¿Qué significan los paréntesis alrededor de la variable en my ($value) = @_;, y qué sucedería si se quitaran?
- ¿new es una función incorporada/palabra reservada?
- ¿Cómo lees la documentación de una librería principal? ¿Y de un módulo CPAN?
- ¿Cómo accedes solo a los valores de un hash en Perl 5?
Según chromatic, un buen programador de Perl debería ser capaz de responder sin problemas al menos al 80% de estas preguntas: «Éstas no solo son cuestiones que un buen programador de Perl debe ser capaz de responder, sino que cualquiera que no pueda responderlas con facilidad necesita estudiar más Perl»
Todas estas cuestiones se encuentran en cualquier buen libro de Perl, incluido su recientemente publicado Modern Perl (en inglés).