sub AUTOLOAD { my $self=shift; my $method=$AUTOLOAD; my $PSEUDO_PARENT = 'A'; $method=~s/^.*:://; return if $method eq 'DESTROY'; if (certain conditions are met) { do something } else { #dynamically call the pseudo parent function my $return_value = eval("&{$PSEUDO_PARENT"."::"."$method}".'($self, @_)'); #catch eval error! if( $@ ) { die $@; } #return whatever the eval'd function returned return $return_value; } }