• Publicidad

Igualdad en Perl

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

Igualdad en Perl

Notapor afry » 2008-08-28 10:27 @477

Hola, he hecho un programa en Perl que funciona pero en el terminal me da un fallo (que no impide su correcto funcionamiento) pero que soy incapaz de subsanarlo... Este es un trocito de uno de los bucles del programa en el que indicado la línea del fallo. Exactamente en el terminal me pone:
Código: Seleccionar todo
Use of uninitialized value in numeric eq (==)


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
for($A=0;$A<$n_inicio;$A++)
        {
       

        $posicionE= $AposicionE[$A];
       

        $posicionS= $AposicionS[$A];




        if ($posicionS == 0)   # en esta línea me da el fallo

                {next;}



        $diferencia=$posicionS-$posicionE;


        if ($diferencia < $l_min)

                {next;}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


No sé de qué otra forma podía poner la condición del if para que no me diese error.
Muchas gracias
afry
Perlero nuevo
Perlero nuevo
 
Mensajes: 11
Registrado: 2008-07-05 13:43 @613

Publicidad

Notapor explorer » 2008-08-28 11:14 @509

No es un fallo. Es un aviso de que la variable $posicionS no ha sido inicializada o contiene un valor indefinido. Como está en un bucle, lo más seguro es que $AposicionS[$A] no exista o contenga un valor indefinido.

Una forma de 'esconder' el aviso es haciendo la pregunta de esta forma:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if (!defined($posicionS) or $posicionS == 0) {
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Otra forma sería desactivar los avisos (comentar la línea "use warnings;" o poner "no warnings;" al principio del bucle).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Notapor Jenda » 2008-09-03 18:37 @817

O puedes desactivar sólo este aviso (que me parece inútil a mí) con

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
no warnings 'uninitialized';
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
-------------------------------------------------------
- Estoy aquí para practicar español. Si te ayudó mi respuesta ayudame con un mensaje privado sobre mis faltas por favor. Seguramente habrá muchas :-)
Jenda
Perlero nuevo
Perlero nuevo
 
Mensajes: 132
Registrado: 2007-10-29 06:31 @313
Ubicación: Praga, Republica Checa


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado