Consider the following program which just does a regex on two array entries:
@files=("zzz.21.yy.ccc", "zzz.220.ccc" ); foreach $name (@files) { chomp $name; $match="no "; $match="yes" if ( $name =~ /(^[a-z]{3})\.(\d{2,3})\..*\.ccc/) ; print "$match, $name, match1: $1, match2: $2\n"; }
When I run this on Linux perl 5.8.8 $2 does not seem correct for the second name:
The second name should have the same values since the regex match fails the second time, but $2 mysteriously takes "21." from the first entry. Can this be a problem with perl 5.8.8?
See below:
perl issueWithRegex.pl yes, zzz.21.yy.ccc, match1: zzz, match2: 21 no , zzz.220.ccc, match1: zzz, match2: 21.
With perl 5.10.1 this seems to run as I would expect it to:
perl issueWithRegex.pl yes, zzz.21.yy.ccc, match1: zzz, match2: 21 no , zzz.220.ccc, match1: zzz, match2: 21
Thanks for any comments.
In reply to curious regex result for perl 5.8.8 by erodrig
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |