my %dmap = ( 1 => 0 2 => 4 3 => 5 4 => 3 5 => 1 ); my @tosort = (1,2,3,4,5); my @sorted = sort { $dmap{$a} <=> $dmap{$b} } @tosort;