use Data::Dumper; my %hash = ( Titanic => [ "Anno 1912", "Southampton" ], Cheopspyramide => [ "Anno ca. -3000 plusminus 1500", "Gizeh" ], Perl => [ "Kamel" ], ); my %reverse_lookup; foreach my $arrayref ( keys %hash ) { foreach my $element ( @{ $hash{$arrayref} } ) { $reverse_lookup{$element} = $arrayref; } } print Dumper \%reverse_lookup;