Как проверить, определен ли захват в соответствии с регулярным выражением Perl?
#!/usr/bin/env perl
use v5.10;
my $str="foobar
barfoo";
while($str =~ m/(?:(f.*))|(?:(b.*))/g) {
say "+ $1";
say "- $2";
}
выводит
+ foobar
-
+
- barfoo
пока я хочу
+ foobar
- barfoo
т.е. если $1
или $2
не совпадают, оно не должно печататься.