use strict; use warnings; my %hash = ( A => { F => 1, G => "3A", H => 5 }, B => { F => 1, G => "3B", H => 5 }, C => { F => 1, G => "3C", H => 5 }, D => { F => 1, G => "3D", H => 5 }, E => { F => 1, G => "3E", H => 5 }, ); print "$_->{G} " for (values %hash); #### 3A 3D 3C 3E 3B #### print join " ", map {values %{$_}, "-"} values %hash; #### 5 1 3A - 5 1 3D - 5 1 3C - 5 1 3E - 5 1 3B -