Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
public(3)	      User Contributed Perl Documentation	     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 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.

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

perl v5.32.0			  2011-02-05			     public(3)

NAME | SYNOPSIS | DESCRIPTION | EXAMPLE | MUSINGS | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=public&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help