http://www.perlmonks.org?node_id=1050120


in reply to Re^2: uninitialized values
in thread uninitialized values

Here's a way to get rid of the warnings, but really you need to reconsider the whole approach used in the while loop. That code is a mess.

By declaring lexical variables inside the loop, they get reset each time through. Move the declarations out of the loop for them to persist.

my (@values1,@val1,@values2,@val2); while (<CMD>) { ...
You will still get one warning from line 1, because the code after the if loop is executed for all lines and @val2 is not yet defined. Adding next can fix that.
my (@values1,@val1,@values2,@val2); while (<CMD>) { if ( $_ =~ /PING/ ){ @values1 = split ; @val1 = split(/\(/,$values1[3]); $val1[1] =~ s/\)//; next; } ...

Again, while these changes avoid the warnings and hopefully show you why they happened, the entire while loop needs a rethink.

Replies are listed 'Best First'.
Re^4: uninitialized values
by gaurav (Sexton) on Aug 20, 2013 at 05:26 UTC

    yes thanks for it,I got it.I am feeling dumb.Hope I won't committed this mistake again