in reply to Arbitrary number of captures in a regular expression
You can avoid the nested loop by capturing the repeated elements as a single match and then splitting it:
my @match; while( <DATA> ) { m[^foo ((?:m \d+ )+)] and @match = split '(?<=\d) (?=m)', $1; print "@match"; }
Whether that is in any way 'better' is your call.
|
|---|