public(3)
NAME
public - Add public data members to Perl classes
SYNOPSIS
package GI::Joe; use public qw( Name Rank Serial_Number ); # see the protected man page for an example of use
DESCRIPTION
- Public member.
- Externally visible data or functionality. An
attribute or method that is directly accessable from
scopes outside the class. In Perl, most members are,
by their standard semantics, public. By convention,
attributes of Perl classes are regarded as private, as
are methods whose names begin with an underscore. - From "Object Oriented Perl" by Damian Conway
- public.pm adds a list of keys as public data members to
the current class. This is useful when using pseudohashes as objects, or for simply imposing a bit more
structure on your Perl objects than is normally expected.
It allows you to use the methods provided in
Class::Fields. - Public data members are those pieces of data which are
expected to be regularly accessed by methods, functions
and programs outside the class which owns them. They are
also inherited by any subclasses. - public.pm serves a subset of the functionality of
fields.pm.
use public qw(Foo);- is almost exactly the same as:
use fields qw(Foo);- with the exception that you can (if you REALLY want to) do
something like this:
use public qw(_Foo);- Whereas one cannot do this with fields.pm. (Note: This is
considered unwise and public.pm will scream about it if
you have Perl's warnings on.) - Additionally, public.pm is a bit clearer in its intent and
is not necessarily implying use of pseudo-hashes.
EXAMPLE
See "SYNOPSIS" in protected for an example of use.
MUSINGS
I fully expect public.pm to eventually mutate into a real
pragma someday when a better formalized OO data system for
Perl supplants the current fledgling pseudo-hashes.
AUTHOR
Michae G Schwern <schwern@pobox.com>
SEE ALSO
- private, protected, fields, base, Class::Fields