http://qs321.pair.com?node_id=263372

AidanLee has asked for the wisdom of the Perl Monks concerning the following question:

Hi folks, it's been a while... I've got a module that's two-steps down the inheritence tree from a Tied module of my own devising. It's autogenerated from an xml file using Template Toolkit, as are other modules that don't seem to be having this problem. Let's begin with the error message:
Can't locate object method "TIEHASH" via package "Resources::Action::V +iew" at /home/v2/cms/Shared/lib/Resource/Base.pm line 251.
Looking at line 251, we have:
$object = tie( %hash, "Resources::$object_properties->{type}" );
pretty straightforward. We're calling TIEHASH through the Resources::Action::View package. Looking in the modules, we see:
package Resources::Action::View; use base 'Resource::Base'; ...and... package Resource::Base; use base 'Resource::Tied'; ...and... package Resource::Tied; ...which contains: sub TIEHASH { return bless( {}, shift ); }
which all leaves me wondering where the typo is. Any ideas why the child class can't find the TIEHASH method?

Replies are listed 'Best First'.
Re: Inheritence Issues (can't find TIEHASH via inheritence) (require?)
by tye (Sage) on Jun 05, 2003 at 15:31 UTC

    I don't see require Resources::Action::View; in your main script.

                    - tye
      Much better. The others who wrote this module seem to have overlooked that step. Ah, the things one (or at least I) assumes when you've been in OO-land too long.