-
-
30 Dec 2004 07:42:42 UTC
- Distribution: Class-BlackHole
- Module version: 0.04
- Source (raw)
- Browse (raw)
- Changes
- How to Contribute
- Issues
- Testers (680 / 0 / 0)
- Kwalitee
Bus factor: 0- 84.21% Coverage
- License: unknown
- Activity
24 month- Tools
- Download (4.66KB)
- MetaCPAN Explorer
- Permissions
- Subscribe to distribution
- Permalinks
- This version
- Latest version
- Dependencies
- unknown
- Reverse dependencies
- CPAN Testers List
- Dependency graph
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
, andisa
. 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
Module Install Instructions
To install Class::BlackHole, copy and paste the appropriate command in to your terminal.
cpanm Class::BlackHole
perl -MCPAN -e shell install Class::BlackHole
For more information on module installation, please visit the detailed CPAN module installation guide.