If the item doesn't exist, you're just going to create it anyway, so why not just use:
push @{$hash{A1}{B2}{C1}}, $item;
Without showing more of your code, we can't be sure exactly what your problem is. I'm suspecting that it's due to the fact that sometimes your B-level variable is a string and sometimes it's a hash reference. Perhaps $hash{A1}{B2} was a string a moment before executing the code you've shown--that would be enough to cause the problem:
$ perl ttt3.pl Can't use string ("") as a HASH ref while "strict refs" in use at ttt3 +.pl line 7. * /W/P/PM/ monitor_saints; check TODO_LIST $ cat ttt3.pl #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %hash; $hash{A1}{B2} = ""; if (exists $hash{A1}{B2}{C1}) { print "Baz!\n"; }
...roboticus
When your only tool is a hammer, all problems look like your thumb.
In reply to Re: How to add to hash of a hash of an array. Confused.com!
by roboticus
in thread How to add to hash of a hash of an array. Confused.com!
by Doozer
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |