Perl-Lint
view release on metacpan or search on metacpan
t/Policy/ValuesAndExpressions/require_interpolation_of_metachars.t view on Meta::CPAN
--- params:
--- input
Readonly::Scalar my $EXPL => q{Use '@EXPORT_OK' or '%EXPORT_TAGS' instead};
===
--- dscr: OK to escape backslashes.
--- failures: 0
--- params:
--- input
print 'it is ok to escape a backslash: \\t'
print q{it is ok to escape a backslash: \\t}
print 'you can do it multiple times: \\\\\\t'
print q{you can do it multiple times: \\\\\\t}
===
--- dscr: OK to escape quotes.
--- failures: 0
--- params:
--- input
print 'you can also escape a quote: \''
print q{you can also escape a quote: \'}
print 'you can escape a quote preceded by backslashes: \\\\\''
print q{you can escape a quote preceded by backslashes: \\\\\'}
===
--- dscr: Valid escapes should not hide invalid ones.
--- failures: 4
--- params:
--- input
print 'it is ok to escape a backslash: \\t but not a tee: \t'
print q{it is ok to escape a backslash: \\t but not a tee: \t}
print 'you can also escape a quote: \' but not a tee: \t'
print q{you can also escape a quote: \' but not a tee: \t}
===
--- dscr: Sigil characters not looking like sigils.
--- failures: 0
--- params:
--- input
$sigil_at_end_of_word = 'list@ scalar$';
$sigil_at_end_of_word = 'scalar$ list@';
$sigil_at_end_of_word = q(list@ scalar$);
$sigil_at_end_of_word = q(scalar$ list@);
%options = ( 'foo=s@' => \@foo); #Like with Getopt::Long
%options = ( q{foo=s@} => \@foo); #Like with Getopt::Long
$sigil_as_delimiter = q$blah$;
$sigil_as_delimiter = q $blah$;
$sigil_as_delimiter = q@blah@;
$sigil_as_delimiter = q @blah@;
===
--- dscr: Do complain about RCS variables, if not turned on.
--- failures: 7
--- params:
--- input
$VERSION = q<$Revision$>;
($VERSION) = q<$Revision$> =~ m/(\d+)/mx;
our $VERSION = substr(q/$Revision$/, 10);
our ($VERSION) = q<$Revision$> =~ m/(\d+)/mx;
our ($VERSION) = (q<$Revision$> =~ m/(\d+)/mx);
our (undef, $AUTHOR, undef, undef, $VERSION) = split m/\s+/, q<$Author$ $Revision$>;
# Yes, silly example, but still need to check it.
if ( ($VERSION) = q<$Revision$> =~ m/(\d+)/mx ) {}
===
--- dscr: Don't complain about RCS variables, if turned on.
--- failures: 0
--- params: {require_interpolation_of_matchers => {rcs_keywords => 'Revision Author'}}
--- input
$VERSION = q<$Revision$>;
($VERSION) = q<$Revision$> =~ m/(\d+)/mx;
our $VERSION = substr(q/$Revision$/, 10);
our ($VERSION) = q<$Revision$> =~ m/(\d+)/mx;
our ($VERSION) = (q<$Revision$> =~ m/(\d+)/mx);
our (undef, $AUTHOR, undef, undef, $VERSION) = split m/\s+/, q<$Author$ $Revision$>;
# Yes, silly example, but still need to check it.
if ( ($VERSION) = q<$Revision$> =~ m/(\d+)/mx ) {}
===
--- dscr: Don't complain about '${}' and '@{}' because they're invalid syntax. See RT #38528/commit r3077 for original problem/solution.
--- failures: 0
--- params:
--- input
use Blah '${}' => \&scalar_deref;
use Blah '@{}' => \&array_deref;
use Blah '%{}' => \&hash_deref;
use Blah '&{}' => \&code_deref;
use Blah '*{}' => \&glob_deref;
use Blah ('${}' => \&scalar_deref);
use Blah ('@{}' => \&array_deref);
use Blah ('%{}' => \&hash_deref);
use Blah ('&{}' => \&code_deref);
use Blah ('*{}' => \&glob_deref);
use Blah 1.0 ('${}' => \&scalar_deref);
use Blah 1.0 ('@{}' => \&array_deref);
===
--- dscr: use vars arguments.
--- failures: 0
--- params:
--- input
use vars '$FOO';
use vars '$FOO', '@BAR';
use vars ('$FOO');
use vars ('$FOO', '@BAR');
use vars (('$FOO'));
use vars (('$FOO', '@BAR'));
use vars ((('$FOO')));
use vars ((('$FOO', '@BAR')));
use vars qw< $FOO @BAR >;
use vars qw< $FOO @BAR >, '$BAZ';
===
--- dscr: Include statement failure.
--- failures: 1
--- params:
--- input
use Generic::Module '$FOO';
===
--- dscr: Things that look like email addresses.
--- failures: 0
--- params:
--- input
$simple = 'me@foo.bar';
$complex = q{don-quixote@man-from.lamancha.org};
===
--- dscr: More things that look like email addresses.
--- failures: 0
--- params:
--- input
$simple = 'Email: me@foo.bar';
$complex = q{"don-quixote@man-from.lamancha.org" is my address};
( run in 0.610 second using v1.01-cache-2.11-cpan-71847e10f99 )