http://www.perlmonks.org?node_id=1035817


in reply to how to print out side of foreach loop($k1 $a{$k1}) ?

You shouldn't use $a as variable. $a and $b are special variables in perl, used to hold results from the sort function.

As stated by others, use the Data::Dumper module for printing hashes.

use Data::Dumper; my %not_a_or_b=(); $not_a_or_b{1}{"a"}{"A"}="FIRST"; $not_a_or_b{1}{"c"}{"B"}="THIRD"; $not_a_or_b{1}{"b"}{"C"}="SECOND"; foreach my $k1 ( sort keys %not_a_or_b ) { foreach my $k2 ( sort keys %{$not_a_or_b{$k1}} ) { foreach my $k3 ( sort keys %{$not_a_or_b{$k1}{$k2}} ) { print "$not_a_or_b{$k1}{$k2}{$k3}\n"; } } } print Dumper(\%not_aor_b);

Anne

Replies are listed 'Best First'.
Re^2: how to print out side of foreach loop($k1 $a{$k1}) ?
by marto (Cardinal) on May 29, 2013 at 11:17 UTC

    Nope:

    Global symbol "%not_aor_b" requires explicit package name at derp.pl l +ine 20. Execution of derp.pl aborted due to compilation errors.

    Consider running the code, or copying and pasting your actual code, to catch such errors.

      Thanks again, marto,

      I just wanted to HELP him, by indicating what was going wrong for him.

      Vowing to never try to help out perl monks while trying to get kids on the bus in the morning, before my first cup of coffee. Will test my code next time.

      Anne