in reply to Wanted further clarification on Data Usage
To summarise even further :) The problem I saw was this...
You have a function which returns a reference to a hash like this:
sub make_hash { my %hash; # Do clever stuff to fill in values in hash return \%hash; }
which you call to get a reference to a hash which you store in a scalar called $thisDataset like this:
my $thisDataset = make_hash();
Later on you pass this hash to another function which assumes that its first parameter is a hash reference like this:
sub do_stuff_to_hash { foreach (keys %{$_[0]}) { # do something with each key } } do_something_with_hash($thisDataset);
All this is fine, but later still you suddenly start to treat $thisDataset as if it's a hash by accesing it like this:
$thisDataset{$curr_month};
This is the error that use strict picked up as it realised that you were accessing both the scalar $thisDataset and the hash %thisDataset. I suspect that want you really wanted to do was something like:
$thisDataset->{$curr_month};
use strict is your friend. Use use strict.
--
|
---|