{ my @FIELDS = qw( foo bar baz); sub set_params { return { map { $_ => $_ } @FIELDS }; } } my $params = set_params; use Data::Dumper "Dumper"; print Dumper($params); __OUTPUT__ $VAR1 = { 'bar' => 'bar', 'baz' => 'baz', 'foo' => 'foo' }; #### sub set_params { { map { $_ => $_ } @FIELDS }; } $ perl -MO=Deparse /tmp/hash.pl sub set_params { { map {$_, $_;} @FIELDS; } } sub set_params { +{ map { $_ => $_ } @FIELDS }; } $ perl -MO=Deparse /tmp/hash.pl sub set_params { {map({$_, $_;} @FIELDS)}; } sub set_params { return { map { $_ => $_ } @FIELDS }; } $ perl -MO=Deparse /tmp/hash.pl sub set_params { return {map({$_, $_;} @FIELDS)}; }