Как я могу получить доступ к буферам захвата в скобках с квантификаторами?
#!/usr/local/bin/perl
use warnings;
use 5.014;
my $string = '12 34 56 78 90';
say $string =~ s/(?:(\S+)\s){2}/$1,$2,/r;
# Use of uninitialized value $2 in concatenation (.) or string at ./so.pl line 7.
# 34,,56 78 90
С @LAST_MATCH_START
и @LAST_MATCH_END
это работает *, но строка становится слишком длинной.Не работает, посмотрите на ответ TLP.
*The proof of the pudding is in the eating
не всегда прав.
say $string =~ s/(?:(\S+)\s){2}/substr( $string, $-[0], length($-[0]-$+[0]) ) . ',' . substr( $string, $-[1], length($-[1]-$+[1]) ) . ','/re;
# 12,34,56 78 90