my %vals=( 1 => '0', 2 => '3', 3 => '5'); my @arr = ( 0,1,2,3,4,5,6 ); my @res; for my $key ( sort{ $a <=> $b } keys %vals ){ push @res, $arr[$vals{ $key }]; } print join (',', @res ); #### print join (',', @arr[@res] ); #### push @res, $vals{ $key };