sub sortQ3{ local our @dst; ( my( $s, $e ), *dst ) = @_; my $t; my $m = $s-1; $dst[ $_ ] < $dst[ $e ] and $t = $dst[++$m], $dst[$m] = $dst[$_], $dst[$_] = $t for $s .. $e; $t = $dst[++$m], $dst[$m] = $dst[$e], $dst[$e] = $t; sortQ3( $s, $m-1, \@dst ) if $s < $m-1; sortQ3( $m+1, $e, \@dst ) if $m+1< $e; }