my %data2; while (my ($gruppe, $pcs) = each %daten) { push @{$data2{$_}}, $gruppe for @$pcs; } print Dumper \%data2;