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
Copyright © 2010-2025 Platon Technologies, s.r.o.           Index | Man stránky | tLDP | Dokumenty | Utilitky | O projekte
Design by styleshout