Perl: Array of all regexp captures
Perl v5.25.7 added support for the @{^CAPTURE}
variable which wrapped all the regexp parenthesis captures up into an array. If you need this functionality in an older version of Perl you can use this function:
my $str = "Hello Jason Doolis";
$str =~ /Hello (\w+) (\w+)/;
my @captures = get_captures(); # ("Jason", "Doolis")
sub get_captures {
no strict 'refs';
my $last_idx = scalar(@-) - 1;
my @arr = 1 .. $last_idx;
my @ret = map { $$_; } @arr;
return @ret;
}