#/perl/usr/bin use warnings; use strict; my %line; my $why = ""; my $key_a = 'A'; my $key_b = 'B'; my $key_c = 'C'; $line{$key_a}{$key_b}{$key_c}; # this is line 12 my $i = 1; for my $loop_key_a (keys %line) { for my $loop_key_b (keys %{$line{$loop_key_a}}) { for my $loop_key_c (keys %{$line{$loop_key_a}{$loop_key_b}}) { print "$loop_key_a $loop_key_b $loop_key_c\n"; } } }