I can confirm your results on AS 5.10; and (maybe) point out that it does not appear to be conflict between the regexes as I get similar disparate results using tr to count the newlines:
use Data::Dump qw{dump}; $data = do { local $/ = undef; <DATA> }; # in single call dump [ scalar( $data =~ tr[\n][\n] ), scalar($data =~ s/\n/\n/g), scalar($data =~ s/(\w+)/\1/g), length($data) ]; # in multiple calls dump [ scalar( $data =~ tr[\n][\n] ) ]; dump [ scalar($data =~ s/\n/\n/g) ]; dump [ scalar($data =~ s/(\w+)/\1/g) ]; dump [ length($data) ]; __DATA__ Line1 Word Something Line2 Other Word
Gives:
c:\test>783947.pl [6, 6, 6, 38] [2] [2] [6] [38]
Update: Another set of conflicting results I cannot immediately explain?
#! perl -sw use 5.010; $data = do { local $/ = undef; <DATA> }; say join ':', scalar( $data =~ tr[\n][\n] ), scalar($data =~ s/\n/\n/g), scalar($data =~ s/(\w+)/$1/g), length($data) ; my $x = [ scalar( $data =~ tr[\n][\n] ), scalar($data =~ s/\n/\n/g), scalar($data =~ s/(\w+)/$1/g), length($data) ]; say "@$x"; __DATA__ Line1 Word Something Line2 Other Word
Gives:
c:\test>783947.pl Use of uninitialized value in join or string at ... 6::6:38 6 6 6 38
In reply to Re: two regexes in one function call
by BrowserUk
in thread two regexes in one function call
by bobr
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |