in reply to Finding all substrings

This runs a tiny bit faster for me: (5% on short strings, much less for longer strings.)
sub substrings { my $string = shift; my @result = (); foreach my $start (0..length($string)-1) { my $substr = substr($string, $start); while (length($substr)) { push @result, $substr; chop($substr); } } return @result; }
But forget speed. The fun solution is:
sub substrings { local $_ = shift; my @result; do { push @result, /(?=(.+)$)/sg; chop } while (length); return @result; }
Now if I could only figure out how to do it all in one regex... anyone?

Update: That durn mjd got there before I even submitted this... though he used embedded code. Is there any way without it?