Yeah, but if you want to extract the top 26, do you really want to write:
my @top26 = my($a, $b, $c, $d, $e, $f, $g, $h, $i, $j, $k, $l, $m, $n,
+ $o, $p, $q, $r, $s, $t, $u, $v, $w, $x, $y, $z) = sort @foo
or would you prefer:
my @top26 = top (26, @foo);
I'm willing to use up to three variables - but if I only want to extract the top3, I could easily write a single pass algorithm, keeping track of the top3.
And you'd need to write tricky evals if you don't know which top N to take during compile time, but only at run time (for instance, because N is user input).