#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my %return; my @value = qw( foo bar baz quux ); $_ = uc $_ for @{ [ @return{ qw( a b c d ) } = @value ] }; print Dumper( \%return ), Dumper( \@value ); =begin output $VAR1 = { 'c' => 'baz', 'a' => 'foo', 'b' => 'bar', 'd' => 'quux' }; $VAR1 = [ 'foo', 'bar', 'baz', 'quux' ];