[P] Error en un Perl Script

Ernesto Hernández-Novich emhn at telcel.net.ve
Tue Sep 19 07:41:42 CDT 2000


On Mon, 18 Sep 2000, you wrote:
> el caso es que agarro el "pico" creo un archivo nuevo, le escribo
> #!/usr/bin/perl y cuatro lineas de print. Luego obtengo el error:
> ----
> talscript.pl did not return a true
> value at /home/httpd/cgi-bin/talruta/prueba1.pl line 32
> --
> Esta Linea 32 tiene escrito:
> require "talscript.pl";
> --
> Perfecto. No regresa un verdadero valor, pero...........que me habrán querido
> decir con eso?.¿?, ¿como entiendo este error? 
> Luego, todo psicotraumado decidí bajar un script de perl hecho por
> profesionales, y adivinen......me dió el mismo error....¿que
> será?..¿coincidencia?.

Cuando se hace un "use" o "require", se está incluyendo una librería o módulo
Perl en el programa referente. Es _obligatorio_ que las librerías y/o módulos
incluídos retornen un valor booleano "true" para que el programa que les
referencia sepa que puede continuar; el razonamiento es simple, se supone que
el módulo debe ser accesible (en el caso de un require) y además debe poder
inicializar cualesquiera condiciones de funcionamiento tenga (esto es lo más
frecuente en el caso de los use)... retornar un valor booleano es la manera más
razonable de indicarlo.

Lo que se acostumbra hacer en módulos o librerías que no tienen ninguna
inicialización especial (digamos que sólo son una colección de funciones
puras), es terminar el módulo con un simple

return 1;

o mucho más perlish

1;

> PD: 'man perl' no me ayudó......>;-) ¿que otro parámetro me sugieren para
> que se lo añada al man y así poder culturizarme?...¿Sugerencias..?

man perl es un _índice_ para poder recordar los nombres de las páginas de
manual específicas a cada sección. En particular debes leer man perlmod y man
perlmodlib.

Entre otras cosas, leerás por qué es preferible usar use en lugar de require, y
porque es mejor no usar las comillas, al costo de una instalación más cuidadosa
de tus módulos.
-- 
Ernesto Hernández-Novich - Running Linux 2.2.17 i686 - Unix: Live free or die!
-----BEGIN GEEK CODE BLOCK-----
Version: 3.1
GCS d+(-) s+: a C+++$ UBLAVHIOSC++++$ P++++$ L+++$ E- W+ N++ ?o ?K w--- O- M- V
PS+ PE Y+ PGP>++ t+ 5 X+ R* tv+ b++ DI+++$ D++ G>++ e++ h+ r+ y++
-----END GEEK CODE BLOCK-----

------------------------------------------------------------------------
Enviar e-mail a <majordomo at pm.org> colocando en el cuerpo:
"UNSUBSCRIBE caracas-pm-list" para desuscribirse.
"INFO caracas-pm-list" para conocer las reglas de etiqueta.
------------------------------------------------------------------------



More information about the caracas-pm mailing list