Hola soy nuevo en perl, antes programaba en visual basic pero quise ir mas allá
tengo una duda con perl,
die "\nError $!\n"; }
Quiero que si hay un error en la aplicación, el programa vuelva a iniciar desde 0, o que vuelva a tratar desde X linea.
Me explico?
saludos.
Lo podrias ahcer kon un goto....un ejemplo de die es este:
if ($num != 18) {
die "Error\n";
}
Salu2
Gracias por responder Hendrix.
El "script" en perl que estoy haciendo funciona con sockets, y hay un IF que conecta el socket, y hay un "die" que muestra el error, por si falla el socket
Lo que quiero es que si el socket falla, y vaya a "die".., el "die" vuelva a inicar la aplicación para que el socket vuelva a conectar e intente de nuevo ó que empieze desde X linea.
Es que (en el IF) si hay un error con el socket y no conecta ya sea por que no esta conectado a internet, pues te va a enviar a "die" y supongamos que "die" te muestra el mensaje que "no estas conectado a internet", lo que quiero es que en lugar de mostrar cualquier mensaje, intente de nuevo conectarse, como digo.. reiniciando la apliacación o que empieze desde X linea;
Citar
"si hay un error con el socket, vuelve a X linea ó inicia la aplicación"
Ojala me entiendan
Saludos.
use IO::Socket;
use strict;
my $sock;
while(1) {
$sock = IO::Socket::INET->new(PeerAddr => 'host.com',
PeerPort => 80,
Proto => 'tcp');
last if $sock;
}
yo meteria un sleep ya que sino puede ser un poco pesado...
Cita de: knk.ink en 9 Octubre 2006, 18:06 PM
Hola soy nuevo en perl, antes programaba en visual basic pero quise ir mas allá
tengo una duda con perl,
die "\nError $!\n"; }
Quiero que si hay un error en la aplicación, el programa vuelva a iniciar desde 0, o que vuelva a tratar desde X linea.
Me explico?
saludos.
En Visual Basic, se usaria "Manejo de Errores" [usando Resume Next, GoTo, etc] :-X
Pero en Perl podrias, como dijeron arriba, hacer un "If" con el resultado de la conexion del socket [es decir, comprobar si funciono o no] y a partir de ese resultado reconectar el socket (deberia ser mas facil, maldito Larry Wall :-X)
Ya de paso ¿no existen funciones similares a Resume Next [Visual Basic] en Perl? :huh:
Seria mas productivo y efectivo [tal vez] hacerlo de la ultima manera (y mas corto, por supuesto) >:D