sub fast_parasort (&@) { my($coderef, $master_array, @arrayrefs) = @_; my @indexes = sort { local ($a, $b) = ( $master_array->[$a], $master_array->[$b] ); &$coderef } ( 0 .. $#$master_array ); map { [ @$_[ @indexes ] ] } ( $master_array, @arrayrefs ); }