## name Perl 4 package declarations
## failures 3
## cut


package Foo'Bar;
package Foo::Bar'Baz;
package Foo'Bar::Baz;

#-----------------------------------------------------------------------------
## name Perl 5 package declarations
## failures 0
## cut

package Foo;
package Foo::Bar;
package Foo::Bar::Baz;

#-----------------------------------------------------------------------------
## name Perl 4 simple variable access
## failures 9
## cut


my $x = $Foo'bar;
my $x = $Foo'Bar::baz;
my $x = $Foo::Bar'baz;

my @x = @Foo'bar;
my @x = @Foo'Bar::baz;
my @x = @Foo::Bar'baz;


my %x = %Foo'bar;
my %x = %Foo'Bar::baz;
my %x = %Foo::Bar'baz;

#-----------------------------------------------------------------------------
## name Perl 5 simple variable access
## failures 0
## cut

my $x = $Foo::bar;
my $x = $Foo::Bar::baz;

my @x = @Foo;
my @x = @Foo::bar;

my %x = %Foo::baz;
my %x = %Foo::Bar::baz;

#-----------------------------------------------------------------------------
## name Perl 4 simple variable assignment
## failures 9
## cut

$Foo'bar       = $x;
$Foo'Bar::baz  = $x;
$Foo::Bar'baz  = $x;

@Foo'bar       = @x;
@Foo'Bar::baz  = @x;
@Foo::Bar'baz  = @x;

%Foo'bar       = %x;
%Foo'Bar::baz  = %x;
%Foo::Bar'baz  = %x;

#-----------------------------------------------------------------------------
## name Perl 4 localized variable assignment
## failures 11
## cut

local $Foo'bar       = $x;
local $Foo'Bar::baz  = $x;
local $Foo::Bar'baz  = $x;

local @Foo'bar       = @x;
local @Foo'Bar::baz  = @x;
local @Foo::Bar'baz  = @x;

local %Foo'bar       = %x;
local %Foo'Bar::baz  = %x;
local %Foo::Bar'baz  = %x;

local ($Foo'Bar'baz, $Foo'Bar'bam) = @list;

#-----------------------------------------------------------------------------
## name Perl 5 simple variable assignment
## failures 0
## cut

$Foo::Bar = $x;
$Foo::Bar::baz = $x;

@Foo::Bar = @x;
@Foo::Bar::baz = @x;

%Foo::Bar = %x;
%Foo::Bar::baz = %x;

#-----------------------------------------------------------------------------
## name Perl 5 localized variable assignment
## failures 0
## cut

local $Foo::Bar = $x;
local $Foo::Bar::baz = $x;

local @Foo::Bar = @x;
local @Foo::Bar::baz = @x;

local %Foo::Bar = %x;
local %Foo::Bar::baz = %x;

local ($Foo::Bar::baz, $Foo::Bar::bam) = @list;

#-----------------------------------------------------------------------------
## name Perl 4 simple subroutine invocation
## failures 8
## cut

Foo'bar();
&Foo'bar;
Foo'Bar::baz($x, 'y');
Foo::Bar'baz($x, 'y');

my $x = Foo'bar();
my $x = &Foo'bar;
my $x = Foo'Bar::baz($x, 'y');
my $x = Foo::Bar'baz($x, 'y');

#-----------------------------------------------------------------------------
## name Perl 5 simple subroutine invocation
## failures 0
## cut

Foo::bar();
&Foo::bar;
Foo::Bar::baz($x, 'y');
my $x = Foo::bar();
my $x = &Foo::bar;
my $x = Foo::Bar::baz($x, 'y');

#-----------------------------------------------------------------------------
## name Perl 4 simple direct class method invocation
## failures 8
## cut

Foo'bar->new();
&Foo'bar->new;
Foo'Bar::baz->new($x, 'y');
Foo::Bar'baz->new($x, 'y');

my $x = Foo'bar->new();
my $x = &Foo'bar->new;
my $x = Foo'Bar::baz->new($x, 'y');
my $x = Foo::Bar'baz->new($x, 'y');

#-----------------------------------------------------------------------------
## name Perl 5 simple direct class method invocation
## failures 0
## cut

Foo::bar->new();
&Foo::bar->new;
Foo::Bar::baz->new($x, 'y');

my $x = &Foo::bar->new;
my $x = Foo::bar->new();
my $x = Foo::Bar::baz->new($x, 'y');

#-----------------------------------------------------------------------------
## name Perl 4 simple indirect class method invocation
## failures 4
## cut

$z = new Foo'bar();
$z = new Foo'bar;
$z = new Foo'Bar::baz($x, 'y');
$z = new Foo::Bar'baz($x, 'y');

#-----------------------------------------------------------------------------
## name Perl 5 simple indirect class method invocation
## failures 0
## cut

$z = new Foo::bar();
$z = new Foo::bar;
$z = new Foo::Bar::baz($x, 'y');

#-----------------------------------------------------------------------------
## name complicated statements
## failures 20
## cut

# If PPI ever gains the ability to parse regexes failures ought to be 26.
@Foo::bar = Xyzzy::Qux::corge(Grault::Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B::C::d e /xms;
@Foo'bar = Xyzzy::Qux::corge(Grault::Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B::C::d e /xms;
@Foo::bar = Xyzzy'Qux::corge(Grault::Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B::C::d e /xms;
@Foo::bar = Xyzzy::Qux'corge(Grault::Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B::C::d e /xms;
@Foo::bar = Xyzzy::Qux::corge(Grault'Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B::C::d e /xms;
@Foo::bar = Xyzzy::Qux::corge(Grault::Thud->fred('x') + new Plugh'Waldo) =~ m/ a $B::C::d e /xms;
@Foo::bar = Xyzzy::Qux::corge(Grault::Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B'C::d e /xms;
@Foo::bar = Xyzzy::Qux::corge(Grault::Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B::C'd e /xms;

@Foo'bar = Xyzzy::Qux'corge(Grault::Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B::C::d e /xms;
@Foo::bar = Xyzzy'Qux::corge(Grault'Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B::C::d e /xms;
@Foo::bar = Xyzzy::Qux'corge(Grault::Thud->fred('x') + new Plugh'Waldo) =~ m/ a $B::C::d e /xms;
@Foo::bar = Xyzzy::Qux::corge(Grault'Thud->fred('x') + new Plugh::Waldo) =~ m/ a $B'C::d e /xms;
@Foo::bar = Xyzzy::Qux::corge(Grault::Thud->fred('x') + new Plugh'Waldo) =~ m/ a $B::C'd e /xms;

@Foo'bar = Xyzzy::Qux'corge(Grault::Thud->fred('x') + new Plugh'Waldo) =~ m/ a $B'C::d e /xms;

@Foo'bar = Xyzzy'Qux'corge(Grault'Thud->fred('x') + new Plugh'Waldo) =~ m/ a $B'C'd e /xms;


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

## name hash keys
## failures 0
## cut

$foo = { bar'baz => 0 };
print $foo{ bar'baz };


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

## name $POSTMATCH
## failures 0
## cut

$foo = $';
print $';

@foo = @';
%foo = %';
$foo = \&';
*foo = *';


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

##############################################################################
#      $URL: http://perlcritic.tigris.org/svn/perlcritic/trunk/distributions/Perl-Critic/t/Variables/ProhibitPerl4PackageNames.run $
#     $Date: 2009-03-07 07:14:51 -0800 (Sat, 07 Mar 2009) $
#   $Author: clonezone $
# $Revision: 3231 $
##############################################################################

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