use strict; use warnings; my @binNames = qw(HRT RD WR LL DC); my @values = qw( 0 1 2 3 4); my %namedValues; @namedValues{@binNames}=@values; #a "hash slice" foreach my $name (@binNames) { print "bins $name = {$namedValues{$name}}\n"; #removed backslashes as spotted by [hippo] } __END__ bins HRT = {0} bins RD = {1} bins WR = {2} bins LL = {3} bins DC = {4}