I thought that the gm operators would search all of $contents from begining to end and be reset
No. In scalar context, m//g finds the next match and notes where it found the match so it can use that as the starting point for the next match. It would be a waste of CPU to look for more than one match, and it notes where it found the match to allow constructs such as
while (/.../g) { ... }
Drop the "g".
Drop the "m" while you're at it. "m" affects the behaviour of ^ and $, neither of which you are using.
Update: Oh, and /./ should be /\./ since /./ means "match any character", not "match a period".
In reply to Re: Problem with 2nd string match in file using regex with gm operators
by ikegami
in thread Problem with 2nd string match in file using regex with gm operators
by knudsj01
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |