NAME MooseX::Privacy - Provides the syntax to restrict/control visibility of your methods SYNOPSIS use MooseX::Privacy; private _foo => sub { return 23; }; protected _bar => sub { return 42; }; DESCRIPTION MooseX::Privacy brings the concept of private and protected methods to your class. Private When you declare a method as private, this method can be called only within the class. package Foo; use Moose; use MooseX::Privacy; private _foo => sub { return 23 }; sub foo { my $self = shift; $self->_foo } 1; my $foo = Foo->new; $foo->_foo; # die $foo->foo; # ok Protected When you declare a method as protected, this method can be called only within the class AND any of it's subclasses. package Foo; use Moose; use MooseX::Privacy; protected _foo => sub { return 23 }; package Bar; use Moose; extends Foo; sub foo { my $self = shift; $self->_foo } 1; my $foo = Foo->new; $foo->_foo; # die my $bar = Bar->new; $bar->foo; # ok AUTHOR franck cuny SEE ALSO LICENSE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.