in reply to Working on hash slice

hippo (++) has the classic solution.

If you want to declare AND populate, the following *DESTRUCTIVE* solution works:

>perl -MData::Dumper -E "my @players = qw/ barney fred dino/; my @bowl +ing_scores = (195, 205, 30);my %score=map{shift @players,$_} @bowling +_scores;say Dumper \%score" $VAR1 = { 'dino' => 30, 'barney' => 195, 'fred' => 205 };
For readability - the key statement is:
my %score=map{shift @players,$_} @bowling_scores;
Update: Here is a NON-Destructive version:
>perl -MData::Dumper -E "my @players = qw/ barney fred dino/; my @bowl +ing_scores = (195, 205, 30);my %score=map{$players[$_],$bowling_score +s[$_]} 0..$#players;say Dumper \%score; say Dumper \@players"
Key statement:
my %score=map{$players[$_],$bowling_scores[$_]} 0..$#players;

                As a computer, I find your faith in technology amusing.