X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlop.pod;h=3734477ecf423b23c2fbabdcc636148bc94332f1;hb=1b3f7d2103791ceee4a17b0f9f5860baa1512c7a;hp=45dafaa187300d31cddc600c0d8ae001f6ccd946;hpb=4a6725af9146bd7faaa10aa5429ff009d393fd6d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlop.pod b/pod/perlop.pod index 45dafaa..3734477 100644 --- a/pod/perlop.pod +++ b/pod/perlop.pod @@ -27,7 +27,7 @@ operate on scalar values only, not array values. left | ^ left && left || - nonassoc .. + nonassoc .. ... right ?: right = += -= *= etc. left , => @@ -701,7 +701,10 @@ matches. (In other words, it remembers where it left off last time and restarts the search at that point. You can actually find the current match position of a string or set it using the pos() function--see L.) Note that you can use this feature to stack C -matches or intermix C matches with C. +matches or intermix C matches with C. Note that +the C<\G> zero-width assertion is not supported without the C +modifier; currently, without C, C<\G> behaves just like C<\A>, but +that's accidental and may change in the future. If you modify the string in any way, the match position is reset to the beginning. Examples: @@ -719,12 +722,12 @@ beginning. Examples: print "$sentences\n"; # using m//g with \G - $_ = "ppooqppq"; + $_ = "ppooqppqq"; while ($i++ < 2) { print "1: '"; print $1 while /(o)/g; print "', pos=", pos, "\n"; print "2: '"; - print $1 if /\G(q)/; print "', pos=", pos, "\n"; + print $1 if /\G(q)/g; print "', pos=", pos, "\n"; print "3: '"; print $1 while /(p)/g; print "', pos=", pos, "\n"; } @@ -732,14 +735,11 @@ beginning. Examples: The last example should print: 1: 'oo', pos=4 - 2: 'q', pos=4 + 2: 'q', pos=5 3: 'pp', pos=7 1: '', pos=7 - 2: 'q', pos=7 - 3: '', pos=7 - -Note how C matches change the value reported by C, but the -non-global match doesn't. + 2: 'q', pos=8 + 3: '', pos=8 A useful idiom for C-like scanners is C. You can combine several regexps like this to process a string part-by-part,