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 );