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

FreeBSD Manual Pages

  
 
  

home | help
private(3)	      User Contributed Perl Documentation	    private(3)

NAME
	 private - Add private data members to Perl classes

SYNOPSIS
	 package GI::Joe;

	 use private qw( _SexualPrefs _IsSpy );

	 # see the protected man page for an example

DESCRIPTION
       Private member.
	   Internal data or functionality.  An attribute or method only
	   directly accessible to the methods of the same class	and
	   inaccessible	from any other scope.  In Perl,	notionally private
	   attributes and members are conventionally given names beginning
	   with	an underscore.

	   From	"Object	Oriented Perl" by Damian Conway

       private.pm adds a list of keys as private data members to the current
       class.  See public for more info.

       Private data members are	those pieces of	data which are expected	to be
       only accessed by	methods	of the class which owns	them.  They are	not
       inherited by subclasses.

       private.pm serves a subset of the functionality of fields.pm.

	 use private 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 private qw(Foo);

       Whereas one cannot do this with fields.pm. (Note: This is considered
       unwise and private.pm will scream about it if you have Perl's warnings
       on.)

       Additionally, private.pm	is a bit clearer in its	intent and is not
       necessarily implying use	of pseudo-hashes.

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

MUSINGS
       I fully expect private.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
       public, protected, fields, base,	Class::Fields

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

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

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

home | help