X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pod%2Fperlvar.pod;h=c3adfa0a1008f4f8c41bbc904e797f556ac82828;hb=53ae2428795d0b9d42a1657c22c5f1b557784379;hp=a211c378ae48e80da5bf252633b0c2e1f132fa92;hpb=44a2ac759eaf811ea851bdf9177a51bf9b95b5ce;p=p5sagit%2Fp5-mst-13.2.git diff --git a/pod/perlvar.pod b/pod/perlvar.pod index a211c37..c3adfa0 100644 --- a/pod/perlvar.pod +++ b/pod/perlvar.pod @@ -228,6 +228,14 @@ performance penalty on all regular expression matches. See L. See L for a replacement. +=item ${^MATCH} +X<${^MATCH}> + +This is similar to C<$&> (C<$POSTMATCH>) except that it does not incur the +performance penalty associated with that variable, and is only guaranteed +to return a defined value when the pattern was compiled or executed with +the C

modifier. + =item $PREMATCH =item $` @@ -243,6 +251,14 @@ performance penalty on all regular expression matches. See L. See L for a replacement. +=item ${^PREMATCH} +X<${^PREMATCH}> + +This is similar to C<$`> ($PREMATCH) except that it does not incur the +performance penalty associated with that variable, and is only guaranteed +to return a defined value when the pattern was compiled or executed with +the C

modifier. + =item $POSTMATCH =item $' @@ -264,6 +280,14 @@ performance penalty on all regular expression matches. See L. See L for a replacement. +=item ${^POSTMATCH} +X<${^POSTMATCH}> + +This is similar to C<$'> (C<$POSTMATCH>) except that it does not incur the +performance penalty associated with that variable, and is only guaranteed +to return a defined value when the pattern was compiled or executed with +the C

modifier. + =item $LAST_PAREN_MATCH =item $+ @@ -320,17 +344,20 @@ Similar to C<@+>, the C<%+> hash allows access to the named capture buffers, should they exist, in the last successful match in the currently active dynamic scope. -C<$+{foo}> is equivalent to C<$1> after the following match: +For example, C<$+{foo}> is equivalent to C<$1> after the following match: + + 'foo' =~ /(?foo)/; - 'foo'=~/(?foo)/; +The keys of the C<%+> hash list only the names of buffers that have +captured (and that are thus associated to defined values). -The underlying behaviour of %+ is provided by the L -module. +The underlying behaviour of C<%+> is provided by the +L module. -B As C<%-> and C<%+> are tied views into a common internal hash +B C<%-> and C<%+> are tied views into a common internal hash associated with the last successful regular expression. Therefore mixing iterative access to them via C may have unpredictable results. -Likewise, if the last successful match changes then the results may be +Likewise, if the last successful match changes, then the results may be surprising. =item HANDLE->input_line_number(EXPR) @@ -591,16 +618,20 @@ After a match against some variable $var: =item %- X<%-> -Similar to %+, this variable allows access to the named capture -buffers that were defined in the last successful match. It returns -a reference to an array containing one value per buffer of a given -name in the pattern. +Similar to C<%+>, this variable allows access to the named capture buffers +in the last successful match in the currently active dynamic scope. To +each capture buffer name found in the regular expression, it associates a +reference to an array containing the list of values captured by all +buffers with that name (should there be several of them), in the order +where they appear. - if ('1234'=~/(?1)(?2)(?3)(?4)/) { - foreach my $name (sort keys(%-)) { - my $ary = $-{$name}; +Here's an example: + + if ('1234' =~ /(?1)(?2)(?3)(?4)/) { + foreach my $bufname (sort keys %-) { + my $ary = $-{$bufname}; foreach my $idx (0..$#$ary) { - print "\$-{$name}[$idx] : ", + print "\$-{$bufname}[$idx] : ", (defined($ary->[$idx]) ? "'$ary->[$idx]'" : "undef"), "\n"; } @@ -614,12 +645,16 @@ would print out: $-{B}[0] : '2' $-{B}[1] : '4' -The behaviour of %- is implemented via the L module. +The keys of the C<%-> hash correspond to all buffer names found in +the regular expression. + +The behaviour of C<%-> is implemented via the +L module. -Note that C<%-> and C<%+> are tied views into a common internal hash +B C<%-> and C<%+> are tied views into a common internal hash associated with the last successful regular expression. Therefore mixing iterative access to them via C may have unpredictable results. -Likewise, if the last successful match changes then the results may be +Likewise, if the last successful match changes, then the results may be surprising. =item HANDLE->format_name(EXPR) @@ -1012,7 +1047,7 @@ X<$^C> X<$COMPILING> The current value of the flag associated with the B<-c> switch. Mainly of use with B<-MO=...> to allow code to alter its behavior when being compiled, such as for example to AUTOLOAD at compile -time rather than normal, deferred loading. See L. Setting +time rather than normal, deferred loading. Setting C<$^C = 1> is similar to calling C. =item $DEBUGGING @@ -1275,7 +1310,7 @@ The revision, version, and subversion of the Perl interpreter, represented as a string composed of characters with those ordinals. Thus in Perl v5.6.0 it equals C and will return true for C<$^V eq v5.6.0>. Note that the characters in this string value can -potentially be in Unicode range. +potentially be greater than 255. This variable first appeared in perl 5.6.0; earlier versions of perl will see an undefined value.