in reply to two regexes in one function call
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
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: two regexes in one function call
by bobr (Monk) on Jul 28, 2009 at 16:39 UTC |