On 11/8/05, John W. Krahn <[EMAIL PROTECTED]> wrote:
> Tom Allison wrote:
> >     if ($text =~ /(.*?($crlf))\2(.*)/sm) {
> >
> > Do I read this right?
> >
> > the '\2' is a repeat character of the second match
> > where match \1 is (.*?$crlf) and
> > match \2 is $crlf ?
>
> Yes, but you don't really need the capturing parentheses there:
>
>     if ( $text =~ /(.*?$crlf)$crlf(.*)/s ) {
>
>
>

That depends; we don't know the contents of $crlf (although we can
probably guess). But if $crlf has classes and/or logic, interpolating
the variable again will match any of the possiblilities, where the
backreference will only match the literal string previously matched.
Consider the following:

   ~/perl> perl -e'$abc="[abc]"; print "matched!\n" if "aa" =~ /($abc)\1/'
   matched!
   ~/perl> perl -e'$abc="[abc]"; print "matched!\n" if "ab" =~ /($abc)\1/'

but:

   ~/perl> perl -e'$abc="[abc]"; print "matched!\n" if "ab" =~ /$abc$abc/'
   matched!

-- jay
--------------------------------------------------
This email and attachment(s): [  ] blogable; [ x ] ask first; [  ]
private and confidential

daggerquill [at] gmail [dot] com
http://www.tuaw.com  http://www.dpguru.com  http://www.engatiki.org

values of β will give rise to dom!

Reply via email to