in reply to Speed of Array Returns

Note that a subroutine doesn't return an array, but rather a list. That can make a lot of difference. Consider this code:

use 5.010; { my @a = (1, 2, 3); sub a { return @a; } } my @x = a(); push @x, 4; say a();
If perl returned by reference (as you seem to suggest), this would print 1234, now it prints 123.

You can't have everything and a pony...

Perl 6 - links to (nearly) everything that is Perl 6.