## name Basic passing
## failures 0
## cut

print "this is not $literal";
print qq{this is not $literal};
print "this is not literal\n";
print qq{this is not literal\n};

#-----------------------------------------------------------------------------

## name Basic failure
## failures 4
## cut

print 'this is not $literal';
print q{this is not $literal};
print 'this is not literal\n';
print q{this is not literal\n};

#-----------------------------------------------------------------------------

## name OK to escape backslashes
## failures 0
## cut

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}

#-----------------------------------------------------------------------------

## name OK to escape quotes
## failures 0
## cut

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: \\\\\'}

#-----------------------------------------------------------------------------

## name Valid escapes should not hide invalid ones
## failures 4
## cut

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}

#-----------------------------------------------------------------------------

## name Sigil characters not looking like sigils
## failures 0
## cut

$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@;

#-----------------------------------------------------------------------------

## name Things that look like email addresses are exempt
## failures 0
## cut

$simple  = 'me@foo.bar';
$complex = q{don-quixote@man-from.lamancha.org};

#-----------------------------------------------------------------------------

## name Email address is part of larger string
## TODO False positive: we should allow this but I'm feeling lazy right now.
## failures 0
## cut

$simple  = 'Email: me@foo.bar';
$complex = q{"don-quixote@man-from.lamancha.org" is my address};

#-----------------------------------------------------------------------------

## name Do complain about RCS variables, if not turned on.
## failures 7
## cut

$VERSION = q<$Revision: 3077 $>;
($VERSION) = q<$Revision: 3077 $> =~ m/(\d+)/mx;
our $VERSION = substr(q/$Revision: 3077 $/, 10);
our ($VERSION) = q<$Revision: 3077 $> =~ m/(\d+)/mx;
our ($VERSION) = (q<$Revision: 3077 $> =~ m/(\d+)/mx);
our (undef, $AUTHOR, undef, undef, $VERSION) = split m/\s+/, q<$Author: wyant $ $Revision: 3077 $>;

# Yes, silly example, but still need to check it.
if ( ($VERSION) = q<$Revision: 3077 $> =~ m/(\d+)/mx ) {}

#-----------------------------------------------------------------------------

## name Don't complain about RCS variables, if turned on.
## failures 0
## parms { rcs_keywords => 'Revision Author' }
## cut

$VERSION = q<$Revision: 3077 $>;
($VERSION) = q<$Revision: 3077 $> =~ m/(\d+)/mx;
our $VERSION = substr(q/$Revision: 3077 $/, 10);
our ($VERSION) = q<$Revision: 3077 $> =~ m/(\d+)/mx;
our ($VERSION) = (q<$Revision: 3077 $> =~ m/(\d+)/mx);
our (undef, $AUTHOR, undef, undef, $VERSION) = split m/\s+/, q<$Author: wyant $ $Revision: 3077 $>;

# Yes, silly example, but still need to check it.
if ( ($VERSION) = q<$Revision: 3077 $> =~ m/(\d+)/mx ) {}

#-----------------------------------------------------------------------------

## name Don't complain about use overload dereferences.
## failures 0
## cut

use overload '${}' => \&scalar_deref;
use overload '@{}' => \&array_deref;
use overload '%{}' => \&hash_deref;
use overload '&{}' => \&code_deref;
use overload '*{}' => \&glob_deref;
use overload ('${}' => \&scalar_deref);
use overload ('@{}' => \&array_deref);
use overload ('%{}' => \&hash_deref);
use overload ('&{}' => \&code_deref);
use overload ('*{}' => \&glob_deref);
use overload 1.0 ('${}' => \&scalar_deref);
use overload 1.0 ('@{}' => \&array_deref);

#-----------------------------------------------------------------------------

## name Do complain about overload dereference-ish strings elsewhere
## failures 2
## cut

use overlord '${}' => \&scalar_deref;
use overlord '@{}' => \&array_deref;

#-----------------------------------------------------------------------------

##############################################################################
#      $URL: http://perlcritic.tigris.org/svn/perlcritic/branches/Perl-Critic-PPI-1.204/t/ValuesAndExpressions/RequireInterpolationOfMetachars.run $
#     $Date: 2009-01-25 21:32:41 -0600 (Sun, 25 Jan 2009) $
#   $Author: wyant $
# $Revision: 3077 $
##############################################################################

# Local Variables:
#   mode: cperl
#   cperl-indent-level: 4
#   fill-column: 78
#   indent-tabs-mode: nil
#   c-indentation-style: bsd
# End:
# ex: set ts=8 sts=4 sw=4 tw=78 ft=perl expandtab shiftround :