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

FreeBSD Manual Pages

  
 
  

home | help
Class::BlackHole(3)   User Contributed Perl Documentation  Class::BlackHole(3)

NAME
       Class::BlackHole	- base class to	treat unhandled	method calls as	no-ops

SYNOPSIS
	 use Class::BlackHole;

	 # set up a class X, to	inherit	from Class::BlackHole
	 @X::ISA = qw(Class::BlackHole);
	 # put a method	in it
	 sub X::zaz { 123123; }

	 print "Zaz is <", X->zaz, ">\n";
	 print "Flork is <", X->flork, ">\n";
	 print "can zaz	: <", X->can('zaz'), ">\n";
	 print "can flork : <",	X->can('flork'), ">\n";

	 The above code	prints:
	  Zaz is <123123>
	  Flork	is <>
	  can zaz : <CODE(0x392c7d4)>
	  can flork : <>

DESCRIPTION
       Normally, if you	try to call a method that there's no handler for, you
       get an error:

	 Can't locate object method "flork" via	package	"X".

       But for classes that inherit from Class::BlackHole, unhandled methods
       become just no-operations.

CAVEATS
       Be sure to have Class::BlackHole	be the absolute	last item in your
       class's ISA list.

       This class will almost definitely not work right	as part	of any ISA
       tree that has multiple inheritance.

IMPLEMENTATION
       Class::BlackHole	just traps everything with an AUTOLOAD sub that	is a
       no-operation.

       HOWEVER,	what makes Class::Blackhole different than merely:

	 @Class::BlackHole::ISA	= ();
	 sub Class::BlackHole::AUTOLOAD	{ }

       is that this would (unhappily) trap calls to the	helpful	methods	in
       UNIVERSAL, like "can", "VERSION", and "isa".  Class::BlackHole aliases
       those methods (or better	said, all subs in package UNIVERSAL) into its
       own package, so that they'll be accessible instead of being caught by
       the AUTOLOAD.

FUNCTIONS AND METHODS
       This module provides no functions or methods.

       It exports no symbols into the calling package or anywhere else.

DISCLAIMER
       This program is distributed in the hope that it will be useful, but
       without any warranty; without even the implied warranty of
       merchantability or fitness for a	particular purpose.

       But let me know if it gives you any problems, OK?

COPYRIGHT
       Copyright 1999, 2000, Sean M. Burke "sburke@cpan.org", all rights
       reserved.  This program is free software; you can redistribute it
       and/or modify it	under the same terms as	Perl itself.

AUTHOR
       Sean M. Burke "sburke@cpan.org"

perl v5.24.1			  2004-12-30		   Class::BlackHole(3)

NAME | SYNOPSIS | DESCRIPTION | CAVEATS | IMPLEMENTATION | FUNCTIONS AND METHODS | DISCLAIMER | COPYRIGHT | AUTHOR

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

home | help