Hub::Base::Object - Standard object base class
Part of the Hub Library
package MyPackage; use strict; use Hub qw(:base); our @ISA = qw(Hub::Base::Object);
This virtual base class ties itself to Hub::Knots::Object in order to separate private variables from public ones. That determination is made by inspecting the 'caller', such that a derived class can:
$self->{'name'} = ref($self);
and the consumer of that class can:
$object->{'name'} = 'Kylee';
without stepping on your private 'name' variable.
Using this scheme, one can create an instance of your class and use it just like a HASH, or an object. When your class wants to maintain state information, it may use its self reference as normal. And when the consumer wants to iterate through data values, it may:
while( my($k,$v) = keys %$object ) {
without any of your state variables needing to be parsed-out.
If you wish to set a public member from inside your class, prepend the hash key with public:
$self->{'public:name'} = 'Steve';
And, to set a private member on an instance of your class, prepend the hash key with private:
$object->{'private:name'} = 'My::Object';
Additionally, you may grab a reference to the underlying public and private data hashes by using the daccess method:
my $public = $object->daccess('public'); croak unless $$public{'name'} eq $$object{'name'};
Direct access to member hashes
Usage: daccess KEYNAME
KEYNAME:
'public' Public hash 'private' Private hash 'internal' Internal hash (used to tie things together)
Constructor.
Usage: new LIST
Parameters are passed to the standard initialization method refresh.
Return instance to initial state.
Usage: refresh LIST
Interface method, override in your derived class. Nothing is done in this base class.
Called implictly by new, and when persistent interpreters (such as mod_perl) would have called new.
Ryan Gies
Copyright (c) 2006 Livesite Networks, LLC. All rights reserved.
Copyright (c) 2000-2005 Ryan Gies. All rights reserved.
This file created by on at
To install Hub, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Hub
CPAN shell
perl -MCPAN -e shell install Hub
For more information on module installation, please visit the detailed CPAN module installation guide.