my %hash = map { my $item = pop @$_; map { $_, $item } @$_ } [ ( 'key1', 'key2', 'key3' ) => 'Value for key1, key2, and key3' ], [ qw( key4 key5 key6 ) => 'Value for key4, key5, key6' ], [ ( 'key7', 'key8', 'key9' ) => 'Value for key7, key8, key9' ]; # So we can now do the following. Hopefully everyone # now understands what the hash declaration above does # Output shown after __END__ while ( my($k,$v) = each %hash ) { print "$k: $v\n"; } __END__ key1: Value for key1, key2, key3 key2: Value for key1, key2, key3 key3: Value for key1, key2, key3 key4: Value for key4, key5, key6 key5: Value for key4, key5, key6 etc etc etc