use strict; use warnings; my $VAR1 = { '315' => {'8' => 0}, '329' => {'6' => 0}, '352' => {'5' => 0}, '390' => {'1' => 0}, '280' => {'7' => 1}, '360' => {'9' => 0}, '349' => {'4' => 0}, '305' => {'10' => 0}, '380' => {'3' => 1}, '251' => {'2' => 0} }; my @a; for my $x (values %$VAR1 ) { for my $y ( keys %$x ) { $a[$y] = [$y, $x->{$y}]; } } print join("\t", ( map { $_->[0]; } grep { defined } @a ) ), "\n"; print join("\t", ( map { $_->[1]; } grep { defined } @a ) ), "\n";