• Publicidad

Pregunta sobre "require"

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

Pregunta sobre "require"

Notapor Rene Serrano » 2007-02-13 12:54 @579

Saludos a Todos !!


Estoy Intentando Hacer mi propia libreria de funciones siguiendo los comenterios de explorer en otro post, pero me queda algunas dudas ya que lo hice y simplimente no me sale error nada de nada.
pregunta donde tiene que estar el archivo, en mi caso se llamar libreria.pl donde tengo las funciones que nesecito , (una de estas funciones se llama error())

esto es lo que intento hacer

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use CGI::Carp qw(fatalsToBrowser set_message);
use CGI ':standard';
require 'libreria.pl';

#despues de consultar la BD

if($row eq ""){
        &error("El Numero de Voucher No esta Registrado","/login/l_voucher.html")
}elsif($id_sup eq "") {
        &error("El Numero de Voucher no esta Registrado en Tesoreria","/login/l_voucher.html")
}else {..
...
...
 
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4


lo unico que me sale en el error log de apache es

[Mon Feb 12 16:29:09 2007] [error] [client 127.0.0.1] Premature end of script headers: l_voucher.pl, referer: http://localhost/login/l_voucher.html
------------
¦23n3
Rene Serrano
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2006-11-27 12:35 @565
Ubicación: El salvador CA

Publicidad

Notapor monoswim » 2007-02-13 14:11 @633

Si colocas require 'libreria.pl'; debe estar en la misma carpeta donde está tu scirpt...

Puedes hacer algo así también...

use lib('mods');

Y en la carpeta mods colocar todos tus módulos propios, para luego llamarlos con use

Pero en mi caso son módulos, orientados a objetos, lo cual es MUY RECOMENDADDO !!!

Espero que te sirva

Saludos
MonoSwim
Perl Programming Language
Avatar de Usuario
monoswim
Perlero nuevo
Perlero nuevo
 
Mensajes: 452
Registrado: 2003-11-18 16:13 @717
Ubicación: Buenos Aires

Notapor Rene Serrano » 2007-02-13 15:31 @688

si esta en la misma carpeta
cgi-bin/login/
pero no me muestra nada que comprobacion puedo hacer para ver si las llamada ala funcion la hace?
------------
¦23n3
Rene Serrano
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2006-11-27 12:35 @565
Ubicación: El salvador CA

Notapor creating021 » 2007-02-13 15:35 @691

¿Y cómo sabes que el servidor lo ejecuta desde allí?
Es decir, si ejecutas un script en X lugar diciendo (por ejemplo) perl /algún/path/mi_programa,pl el verdadero path donde se busca libreria.pl será buscado donde el padre está.
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor Rene Serrano » 2007-02-13 15:54 @704

Me quieres decir que tengo que especificar la ruta donde se encuentra el archivo libreria.pl, aunque este en el mismo directorio de donde lo solicintan ?
y como podria saber de donde lo intenta ejecutar el server?
------------
¦23n3
Rene Serrano
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2006-11-27 12:35 @565
Ubicación: El salvador CA

Notapor creating021 » 2007-02-13 16:04 @711

En efecto... para saber donde estás usas el módulo Cwd (viene con perl)

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Cwd;
print "Ahora estoy en " . getcwd() . "\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Podrías intentar hacer un módulo (no .pl, si no .pm) y usarlo tal como dice monoswim :)
Expect the worst, is it the least you can do?
Avatar de Usuario
creating021
Perlero frecuente
Perlero frecuente
 
Mensajes: 595
Registrado: 2006-02-23 16:17 @720
Ubicación: Frente al monitor

Notapor kidd » 2007-02-13 21:02 @918

Hola:

Si ves los perldocs acerca de require, verás que Perl hace la búsqueda en los directorios especificados en @INC.

La variable @INC incluye el directorio donde reside tu script, pero no creo que el error sea por eso. Tendría que ver el script que estás llamando con require para darte una idea más específica de lo que podría ser el error.

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor Rene Serrano » 2007-02-14 09:31 @438

Gracias por su Interes esta en la funcion que se encuentra dentro de el archivo libreria.pl que se encuentra en la misma carpeta de donde se le llama
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting

use CGI::Carp qw(fatalsToBrowser set_message);
print "Content-type: text/html\n\n";

sub error(){
        my $err=$_[0];
        $err=~s/ /\+/g;
        print "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"0;URL=../login/errores.pl?error=$err&redir=$_[1]>" ;     
}
exit;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


En espera de sus comentarios

Saludos,
------------
¦23n3
Rene Serrano
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2006-11-27 12:35 @565
Ubicación: El salvador CA

Notapor kidd » 2007-02-14 13:50 @618

Ok, creo que sé cual es tu error, y es el exit() que tienes al final de archivo de tu librería, pues estás haciendo que Perl termine de ejecutar en cuanto cargas el archivo.

Elimina esa línea y pruébalo.

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor Rene Serrano » 2007-02-14 15:35 @691

Que Pena :oops:

Eso era Kidd Gracias Man!!!!


Nada como tener una segunda opinion


Saludos,
------------
¦23n3
Rene Serrano
Perlero nuevo
Perlero nuevo
 
Mensajes: 86
Registrado: 2006-11-27 12:35 @565
Ubicación: El salvador CA

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados