in reply to I don't understand why I'm getting an unitialized value warning

$total is the number of elements in @lines, not the last array index. You're looping until $i <= $total, so the last element that you're trying to access is beyond the bounds of the array. So it's undefined.

Say that your array has 5 elements:

my @lines = qw/a b c d e/; my $total = @lines;
$total is now 5, but the last array index is 4, because the indices start at 0. In your for loop, $i goes from 0 to 5, and when $i is 5, you're trying to access
$lines[5]
which doesn't exist.

The solution, of course, is to change your for loop:

for my $i (0..$total-1) { ...
Of course, if this is all you're doing, you may as well just use grep:
my $total = grep $_ ne "\n", @lines;

Replies are listed 'Best First'.
RE: Re: I don't understand why I'm getting an unitialized value warning
by little_mistress (Monk) on Apr 12, 2000 at 23:45 UTC
    god im such a duhhhh ....
    ok ok thanks
    This was sent to me by a coworker so i dont know if it's real code
    or just and example to show me whats going on. But, no i didn't write it
    and i don't know what its for or if its anything more than an example.