in reply to Re^4: Not a HASH reference error
in thread Not a HASH reference error

After line 53, add this:

die "$type doesn't exist in %{\$hashref}" or isnt a hash ref unless exists $hashref->{$type} && ref $hashref->{$type} eq 'HASH';

The point is that the caller is passing $hashref, and @type_order. But one (or more) of the types in @type_order is either not a key in %{$hashref}, or the value of that key is itself not a hashref.


Dave

Replies are listed 'Best First'.
Re^6: Not a HASH reference error
by briandanderson1977 (Novice) on Feb 26, 2016 at 19:59 UTC

    I tried adding that line that you asked me to add, but now it complains of having a configuration or compilation error. Here is what the perl script looks like now

    # Iterate over the configuration types listed in @type_order foreach my $type (@type_order) { print "$log_pre running $action for $type entries\n"; # Iterate over all items of that type my $type_hash = $hashref->{$type}; + #shortcut to smaller hash foreach my $item (keys %{$type_hash}) { print "$log_pre running $action for $type $ite +m\n"; die "$type doesn't exist in %{\$hashref}" or isnt a hash ref unless ex +ists $hashref->{$type} && ref $hashref->{$type} eq 'HASH'; my $item_hash = $type_hash->{$item}; + #shortcut to smaller hash #Add values for type and action into the hash $item_hash->{'name'} = $item; $item_hash->{'type'} = $type; $item_hash->{'action'} = $action; #print Dumper($item_hash); #execute action for the individual configurati +on unless (db2_mgmt_cat(\%{$item_hash})) {
    Please let me know what you think. I'm still getting the pseudo-hash error, I'm wondering if that has something to do with it. THANK YOU!!!

      That should have been:

      die "$type doesn't exist in %{\$hashref} or isnt a hash ref" unless exists $hashref->{$type} && ref $hashref->{$type} eq 'HASH' +;

      Dave