On Mon, Jul 07, 2003 at 01:00:22PM +0100, Rob Dixon wrote: > Steve Grazzini wrote: > > On Sun, Jul 06, 2003 at 11:20:03AM -0000, mark sony wrote: > > > $_ = "The brown fox jumps over the lazy dog"; > > > /the (\S+)(?{ $color = $^N }) (\S+)(?{ $animal = $^N })/i; > > > > $^N is new in 5.8.0. > > In this case you can probably use $+ instead. > > $+ will return only the last captured string so you would > need to process your text in two passes to get this result.
$+ and $^N are updated every time a set of parens matches, so code blocks inside the regex will see whatever the "last match" was at that moment. $_ = "abcde"; m{ ((.) (?{ print $+ }))* }x; # prints "a","b","c"... m{ ((.*) (?{ print $+ }))* a }x; # prints lots of stuff -- Steve -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]