I'm not so sure. Functions calls are expensive, but are they expensive enough and is there enough data to sort to make the drop in readability worth the gain in speed?
Here's something you can use to benchmark.
our @unsorted; local *unsorted = $self->teams(); my @sorted; # Allocate memory up front. $#sorted = $#unsorted; # Is it possible to do this faster? for my $i (0..$#sorted) { local *_ = \($unsorted[$i]); $sorted[$i] = pack 'C6N', 255-($_->get_wins_total()), # Descending 255-($_->get_wins_division()), # Descending 255-($_->get_wins_home()), # Descending 255-($_->get_runs_scored()), # Descending $_->get_runs_allowed(), # Ascending $_->get_reg_schedule_id(), # Ascending $i; } # In-place lexical sort. @sorted = sort @sorted; for my $i (0..$#sorted) { $sorted[$i] = $unsorted[unpack('x6N', $sorted[$i])]; }
In reply to Re^2: Refactor my sort
by ikegami
in thread Refactor my sort
by Herkum
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |