1package autoclass_103::Parent; 2use strict; 3use Class::AutoClass; 4use vars 5 qw(@ISA @AUTO_ATTRIBUTES @OTHER_ATTRIBUTES @CLASS_ATTRIBUTES %SYNONYMS %DEFAULTS); 6@ISA = qw(Class::AutoClass); 7@AUTO_ATTRIBUTES = qw(name sex address dob a _b c d z real); 8@OTHER_ATTRIBUTES = qw(b age); 9@CLASS_ATTRIBUTES = qw(species population class_hash); 10%SYNONYMS = ( gender => 'sex', whatisya => 'sex', syn=>'real' ); 11%DEFAULTS = ( 12 a => 'parent', 13 b => 'virtual parent', 14 c => 'default set in parent, used in kids', 15 z => 'default that is never used', 16 species => 'Dipodomys gravipes', 17 population => 42, 18 class_hash => { 19 this => 'that', 20 these => 'those', 21 } 22); 23Class::AutoClass::declare(__PACKAGE__); 24 25sub _init_self { 26 my ( $self, $class, $args ) = @_; 27 return 28 unless $class eq __PACKAGE__; # to prevent subclasses from re-running this 29 30} 31sub age { print "Calculate age from dob. NOT YET IMPLEMENTED\n"; undef } 32# NG 05-12-07. virtual attribute for regression test 33sub b { 34 my $self=shift; 35 @_? $self->_b(@_): $self->_b(@_); 36} 371; 38