DOCPATCH Re: $1 remains uncleared for failed matches
Jarkko Hietaniemi [Tue, 17 Jun 2003 13:12:21 +0000 (13:12 +0000)]
From: david nicol <whatever@davidnicol.com>
Date: 16 Jun 2003 20:35:24 -0500
Message-Id: <1055813724.1580.19.camel@plaza.davidnicol.com>

Subject: Re: DOCPATCH Re: $1 remains uncleared for failed matches
From: Ronald J Kimball <rjk@linguist.Thayer.dartmouth.edu>
Date: Tue, 17 Jun 2003 00:12:04 -0400
Message-ID: <20030617041204.GA34960@linguist.thayer.dartmouth.edu>

p4raw-id: //depot/perl@19804

pod/perlre.pod
pod/perltrap.pod

index a11e3e8..365cbb9 100644 (file)
@@ -394,11 +394,15 @@ the most-recently closed group (submatch). C<$^N> can be used in
 extended patterns (see below), for example to assign a submatch to a
 variable. 
 
-The numbered variables ($1, $2, $3, etc.) and the related punctuation
+The numbered match variables ($1, $2, $3, etc.) and the related punctuation
 set (C<$+>, C<$&>, C<$`>, C<$'>, and C<$^N>) are all dynamically scoped
 until the end of the enclosing block or until the next successful
 match, whichever comes first.  (See L<perlsyn/"Compound Statements">.)
 
+B<NOTE>: failed matches in Perl do not reset the match variables,
+which makes easier to write code that tests for a series of more
+specific cases and remembers the best match.
+
 B<WARNING>: Once Perl sees that you need one of C<$&>, C<$`>, or
 C<$'> anywhere in the program, it has to provide them for every
 pattern match.  This may substantially slow your program.  Perl
index 48a886a..6a6a443 100644 (file)
@@ -1224,6 +1224,10 @@ repeatedly, like C</x/> or C<m!x!>.
     # perl4 prints: perl4
     # perl5 prints: perl5
 
+=item * Regular Expression
+
+Unlike in Ruby, failed matches in Perl do not reset the match variables
+($1, $2, ..., C<$`>, ...).
 
 =back