use strict; use warnings; use Data::Dumper; my %h = ( a => {b => 1}, c => {d => 2}, ); my @a = qw(a c); print Dumper @h{@a}; __END__ $VAR1 = { 'b' => 1 }; $VAR2 = { 'd' => 2 };