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

Other::Package::_foo();
Other::Package->_bar();
Other::Package::_foo;
Other::Package->_bar;
$self->Other::Package::_baz();

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

## name basic passes
## failures 0
## cut

package My::Self::_private;
use My::Self::_private;
require My::Self::_private;

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

## name Public methods called on non-public classes ok.
## failures 0
## cut

# Used for distibution-private classes.

Foo::_Bar->baz();

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

## name Class methods invoked via __PACKAGE__ are always OK.
## failures 0
## cut

__PACKAGE__->_private();

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

## name "shift" followed by private method call
## failures 0
## cut

# See http://rt.cpan.org/Ticket/Display.html?id=34713
# Also, see the test case below for a counter example.

shift->_private_sub();
shift->_private_sub;

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

## name other builtin-function followed by private method call
## failures 2
## cut

# See http://rt.cpan.org/Ticket/Display.html?id=34713

pop->_private_sub();
pop->_private_sub;

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

## name Difficult-to-detect pass
## failures 0
## cut

# This one should be illegal, but it is too hard to distinguish from
# the next one, which is legal
$pkg->_foo();

$self->_bar();
$self->SUPER::_foo();

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

## name Exceptions from the POSIX module.
## failures 0
## cut

POSIX::_PC_CHOWN_RESTRICTED();
POSIX::_PC_LINK_MAX();
POSIX::_PC_MAX_CANON();
POSIX::_PC_MAX_INPUT();
POSIX::_PC_NAME_MAX();
POSIX::_PC_NO_TRUNC();
POSIX::_PC_PATH_MAX();
POSIX::_PC_PIPE_BUF();
POSIX::_PC_VDISABLE();
POSIX::_POSIX_ARG_MAX();
POSIX::_POSIX_CHILD_MAX();
POSIX::_POSIX_CHOWN_RESTRICTED();
POSIX::_POSIX_JOB_CONTROL();
POSIX::_POSIX_LINK_MAX();
POSIX::_POSIX_MAX_CANON();
POSIX::_POSIX_MAX_INPUT();
POSIX::_POSIX_NAME_MAX();
POSIX::_POSIX_NGROUPS_MAX();
POSIX::_POSIX_NO_TRUNC();
POSIX::_POSIX_OPEN_MAX();
POSIX::_POSIX_PATH_MAX();
POSIX::_POSIX_PIPE_BUF();
POSIX::_POSIX_SAVED_IDS();
POSIX::_POSIX_SSIZE_MAX();
POSIX::_POSIX_STREAM_MAX();
POSIX::_POSIX_TZNAME_MAX();
POSIX::_POSIX_VDISABLE();
POSIX::_POSIX_VERSION();
POSIX::_SC_ARG_MAX();
POSIX::_SC_CHILD_MAX();
POSIX::_SC_CLK_TCK();
POSIX::_SC_JOB_CONTROL();
POSIX::_SC_NGROUPS_MAX();
POSIX::_SC_OPEN_MAX();
POSIX::_SC_PAGESIZE();
POSIX::_SC_SAVED_IDS();
POSIX::_SC_STREAM_MAX();
POSIX::_SC_TZNAME_MAX();
POSIX::_SC_VERSION();
POSIX::_exit();

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

## name User-configured exceptions.
## parms { allow => 'Other::Package::_foo Other::Package::_bar Other::Package::_baz' }
## failures 0
## cut

Other::Package::_foo();
Other::Package->_bar();
Other::Package::_foo;
Other::Package->_bar;
$self->Other::Package::_baz();

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

## name private_name_regex passing
## failures 0
## parms { private_name_regex => '_(?!_)\w+' }
## cut

Other::Package::__foo();
Other::Package->__bar();
Other::Package::__foo;
Other::Package->__bar;
$self->Other::Package::__baz();

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

## name private_name_regex failure
## failures 5
## parms { private_name_regex => '_(?!_)\w+' }
## cut

Other::Package::_foo();
Other::Package->_bar();
Other::Package::_foo;
Other::Package->_bar;
$self->Other::Package::_baz();

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