GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
public(3) User Contributed Perl Documentation public(3)

  public - Add public data members to Perl classes

  package GI::Joe;
  use public qw( Name Rank Serial_Number );
  # see the protected man page for an example of use

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 pseudo-hashes 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.

See "SYNOPSIS" in protected for an example of use.

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.

Michae G Schwern <schwern@pobox.com>

private, protected, fields, base, Class::Fields

2011-02-05 perl v5.40.2

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.