Each successful match sets the numbered capture groups so you are correct in thinking that the second match you perform clobbers the $3 from the first. You are also correct in that storing the capture groups from the first match in some other structure would help. Where you have gone wrong is that you are storing references (see perlreftut) to the capture groups so you are back at square one. Instead you should store the values, eg:

#!/usr/bin/env perl use strict; use warnings; my $string = 'foo bar baz quux'; $string =~ /(\w+) (\w+) (\w+) (\w+)/; print "Numbered groups: $1 $2 $3 $4\n"; my @matches = ($1, $2, $3, $4); print "\@matches has @matches\n"; $3 =~ /^baz/; print "Numbered groups after match 2: $1 $2 $3 $4\n"; print "\@matches after match 2: @matches\n";

🦛


In reply to Re: Need advice for perl use as awk replacement by hippo
in thread Need advice in for perl use as awk replacement by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.