Aaron J Mackey schreef: > > $_ = "2aaa"; > @d = m/(\d+)(a){\1}/; > # @d = (2, a, a); > > That construct doesn't seem to work; Is there a way to get it to work?
Even if it would work, the output would be different. Compare: @d = m/(\d+)(a){2}/; print "@d"; # output: 2 a The parentheses around a return only one match, regardless of the number within the {}. You can come close by using the (??{ code }) construct: @d = m/(\d+)((??{"a{$1}"}))/; print "@d"; # output: 2 aa Apparently, ()'s inside the (??{}) do not capture what they match, or else @d = m/(\d+)(??{'(a)'x$1})/; would be exactly what you want. Eugene