Ley de Murphy

Un poco de troubleshooting: qué hacer cuando algo va mal.

Errar es humano, sobre todo cuando uno tiene tantos dedos y tan pocas teclas y se juntan todas para que uno se equivoque. Y tampoco puede acordarse uno de la sintaxis de un lenguaje que no tiene sintaxis. Sería una paradoja que daría lugar al fin del universo tal como lo conocemos. Así que uno se equivoca. Pero como llegados los 67 minutos de este Perl para apresurados tampoco sabe uno mucho (y se nos echa el tiempo encima) tampoco puede equivocarse uno mucho. Pero hay un par de errores que se cometen con bastante asiduidad. El primero puede ser algo así:

#!/usr/bin/pelr

print "Da igual, porque va a petar";
que, al ejecutarse, da un sorprendente:
jmerelo@vega:~/txt/tutoriales/perl-apresurados$
code/peta1.pl
bash: code/peta1.pl: /usr/bin/pelr: bad interpreter: No existe el fichero o el directorio
, que viene a decir que vale, que muy bien, pero que ese intérprete no existe. Cambiar alguno de los otros caracteres, la admiración (que es una expresión de admiración al creador del programa encarnado en el intérprete) o la almohadilla, produce errores igualmente pintorescos. Por ejemplo, quitar la admiración o la almohadilla da este:
Warning: unknown mime-type for "Da igual, porque va a petar" -- using "application/*"
Error: no such file "Da igual, porque va a
petar"
Este error aparecerá también si pasas un fichero de Windows (que incluyen al final de línea dos caracteres, retorno de carro y fin de línea) a Unix/Linux/GNU (que incluye uno solo). El intérprete de órdenes, tan agudo en otras ocasiones, en esta ocasión interpretará el carácter extraño (representado con ^M en los editores) como parte del nombre y dará el mismo tipo de error.

El segundo tipo de error y el más frecuente, se produce una vez que el intérprete se ha cargado correctamente, por ejemplo en el siguiente programa:

print "Da igual, porque va a petar\n"
print "Pero solo si el error no está en la última
línea\n";
que hace que el intérprete responda con un informativo
syntax error at code/peta2.pl line 4, near "print"
Execution of code/peta2.pl aborted due to compilation errors.
y todo eso, por un humilde punto y coma. Si Guido van Rossum levantara la cabeza.

Evidentemente, otros errores de sintaxis darán su mensaje correspondiente. En general, serán bastante más informativos. Y, en todo caso, Google es tu amigo.

Importante

Ejercicios. Este bloque no tiene ejercicios. No te voy a pedir que escribas un fichero con errores y digas Um, parece que tiene un error. Pero acuérdate de lo leído, te será útil. O lo será para quien llegue aquí desde Google.