in reply to Error - Global variable ....
You don't show us a script, but this is what use strict; does - it forces you to predeclare all the variable names you intend to use. This is a good thing because it finds typos like the following:
use strict; my $variable_with_a_very_long_name = 1; print "The value is >>$varaible_with_a_very_long_name<<";
As your script seems to work with use strict; commented out, likely your script contains no typos and all you need is to predeclare your global variables:
# for global variables: use vars qw(@users $account);
If a variable isn't used in global scope, you want to declare it lexically within the block it is used in via the my keyword:
for $user (@users) { $message = "Hello $user!"; ... }; # should become for my $user (@users) { my $message = "Hello $user!"; };
|
|---|