## name use without regex ## failures 3 ## cut my $foo = $1; my @matches = ($1, $2); #----------------------------------------------------------------------------- ## name void use without regex ## failures 1 ## cut $1 #----------------------------------------------------------------------------- ## name regex but no check on success ## failures 1 ## cut 'some string' =~ m/(s)/; my $s = $1; #----------------------------------------------------------------------------- ## name inside a checkblock, but another regex overrides ## failures 1 ## cut if (m/(.)/) { 'some string' =~ m/(s)/; my $s = $1; } #----------------------------------------------------------------------------- ## name good passes ## failures 0 ## cut if ($str =~ m/(.)/) { return $1; } elsif ($foo =~ s/(b)//) { $bar = $1; } if ($str =~ m/(.)/) { while (1) { return $1; } } while ($str =~ m/\G(.)/cg) { print $1; } print $0; # not affected by policy print $_; # not affected by policy print $f1; # not affected by policy my $result = $str =~ m/(.)/; if ($result) { return $1; } #----------------------------------------------------------------------------- ## name ternary passes ## failures 0 ## cut print m/(.)/ ? $1 : 'undef'; print !m/(.)/ ? 'undef' : $1; print s/(.)// ? $1 : 'undef'; print !s/(.)// ? 'undef' : $1; $foo = m/(.)/ && $1; $foo = !m/(.)/ || $1; $foo = s/(.)// && $1; $foo = !s/(.)// || $1; #----------------------------------------------------------------------------- ## name Regression for PPI::Statement::Expressions ## failures 0 ## cut if (m/(\d+)/xms) { $foo = ($1); } #----------------------------------------------------------------------------- ## name Regression for ternaries with structures ## failures 0 ## cut $str =~ m/(.)/xms ? foo($1) : die; $str =~ m/(.)/xms ? [$1] : die; $str =~ m/(.)/xms ? { match => $1 } : die;