use constant GROUPS => { A => 1, B => 2, C => 3 }; use constant A => { 1 => x, 2 => y, 3 => z }; use constant B => { 1 => x, 2 => y, 3 => z }; #### while ( my ($k,$val) = each %{ +GROUPS } ) { #### while ( my ($k,$val) = each ($k)) { print $k{val} ; } }