$a = "ab cdef gh ijklmn"; $b = "xyz"; while($a =~ /\G(\w\w)/g) { print "1: match in \$a: $1\n"; if($b =~ /\G(\w)/g) { print "2: match in \$b: $1\n"; } else { print "2: no match in \$b - replacing \$a\n"; $a = "AB CD EF"; } if($a =~ /\G(\s*)/g && length $1) { # The match itself never fails print "3: skipping whitespace in \$a\n"; } }