Hello
I am new to perl and learning ...can you please explain why am i getting this error...as myHash is defined right above the code and I think it should be avilable in the sub function.
Here is my code:
<code>
#!/usr/bin/perl
use warnings;
use strict;
%myHash=();
sub populateHash
{
my $MY_FILE="file.properties";
open my $PFILE, '<', $MY_FILE or die "Cannot open '$MY_FILE' $!";
LINE: while (<$PFILE>)
{
# now read the line and remove all white spaces, tab and new line chars or any trailing spaces
$_ =~ s/\s+$//;
next LINE if (/^\s*#/); # ignore commented lines
next LINE if (/^$/); # ignore null lines
my $n=substr($_,0,index($,'='));
my $v=substr($_,index($,'=')+1);
$myHash->{$n}=$v;
}
close $PFILE;
}
&populateHash();
while ( my ($key, $value) = each(%myHash) ) {
print "From myHash --> $key => $value\n";
}
</code>
I get the below error:
<code>
Global symbol "%envPropertiesHash" requires explicit package name at first.pl line 5.
Global symbol "$envPropertiesHash" requires explicit package name at first.pl line 22.
Global symbol "%envPropertiesHash" requires explicit package name at first.pl line 31.
Execution of first.pl aborted due to compilation errors.
</code>