The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.
## name Basic failures
## failures 15
## cut

our $var1 = 'foo';
our (%var2, %var3) = 'foo';
our (%VAR4, $var5) = ();

$Package::foo;
@Package::list = ('nuts');
%Package::hash = ('nuts');

$::foo = $bar;
@::foo = ($bar);
%::foo = ();

use vars qw($fooBar $baz);
use vars qw($fooBar @EXPORT);
use vars '$fooBar', "$baz";
use vars '$fooBar', '@EXPORT';
use vars ('$fooBar', '$baz');
use vars ('$fooBar', '@EXPORT');


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

## name Basic passes - our
## failures 0
## cut

our $VAR1 = 'foo';
our (%VAR2, %VAR3) = ();
our $VERSION = '1.0';
our @EXPORT = qw(some symbols);

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

## name Basic passes - use vars
## failures 0
## cut

use vars qw($VERSION @EXPORT);
use vars ('$VERSION, '@EXPORT');
use vars  '$VERSION, '@EXPORT';

use vars  '+foo'; #Illegal, but not a violaton

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

## name Basic passes - symbols
## failures 0
## cut

#local $Foo::bar;
#local @This::that;
#local %This::that;
#local $This::that{ 'key' };
#local $This::that[ 1 ];
#local (@Baz::bar, %Baz::foo);

$Package::VERSION = '1.2';
%Package::VAR = ('nuts');
@Package::EXPORT = ();

$::VERSION = '1.2';
%::VAR = ('nuts');
@::EXPORT = ();
&Package::my_sub();
&::my_sub();
*foo::glob = $code_ref;

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

## name Lexicals should pass
## failures 0
## cut

my $var1 = 'foo';
my %var2 = 'foo';
my ($foo, $bar) = ();


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

## name Default package exceptions
## failures 0
## cut

use File::Find;
print $File::Find::dir;
use Data::Dumper;
$Data::Dumper::Indent = 1;


use File::Spec::Functions qw< catdir >;
use lib catdir( $FindBin::Bin, qw< .. lib perl5 > );

local $Log::Log4perl::caller_depth = $Log::Log4perl::caller_depth + 1;

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

## name Add to default exceptions
## parms {add_packages => 'Addl::Package'}
## failures 3
## cut


use File::Find;
print $File::Find::dir;

$Addl::Package::bar = 27;

$Addl::Other::wango = 9;
$Addl::Other::tango = 9;
$Addl::Other::bango = 9;


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

## name Override default package exceptions
## parms {add_packages => 'Incorrect::Override::Package'}
## failures 2
## cut

use File::Find;
print $File::Find::dir;
$Override::Defaults::wango = $x;
$Override::Defaults::tango = 47;

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

## name Override default package exceptions, null package
## parms {add_packages => 'Incorrect::Override::Package'}
## failures 1
## cut

$::foo = 1;

#-----------------------------------------------------------------------------
# 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 :