in reply to Use of uninitialized value

Like pg said, you need to show us the rest of your code. In lieu of that, I'm guessing you call this sub actions before the initializing code

my $num = 0; my $status_count = 0; my $status_goal = 0;
has been run.

For example, examine how the following code runs:

use strict; use warnings; print_foo(); my $foo = "bar\n"; sub print_foo { print $foo; } print_foo();

The first call to the sub throws the uninitialized error because the statement my $foo = "bar\n"; hasn't been executed yet. By the second call, that statement has been executed, so there is no warning.

Replies are listed 'Best First'.
Re^2: Use of uninitialized value
by ikegami (Patriarch) on Nov 07, 2004 at 17:15 UTC

    That can be fixed as follows by reordering the statememnts, or by wrapping the my (and therefore the sub) in a BEGIN block:

    BEGIN { my $foo = "bar\n"; sub print_foo { print $foo; } }
Re^2: Use of uninitialized value
by rev_1318 (Chaplain) on Nov 07, 2004 at 22:25 UTC
    That would be my guess also. To avoid this kind of errors, I advise against the use of 'globally used lexicals'. use 'use constant' for constants or pass them to the subroutine and pass variables by reference. Paul