in reply to General module question

I've tried using Foo::Bar::s1() from Foo::Bar::Subclass1 - but I get an error saying it could not be found. I *think* this is because the file is called Foo.pm, and not Foo/Bar.pm

I think you're on the right track here, but I'm not completely sure. The base pragma should complain if it didn't find a module with the appropriate name. Of course, you can define a package of any name in a file of any valid name -- nothing says that Foo::Bar has to be defined in Foo/Bar.pm. You'll just have to go through contortions to load it properly, and that's where I'd expect use base to complain.

I'd recommend fixing the file name, as that may clear up the issue.

Replies are listed 'Best First'.
Re: Filename
by jbeninger (Monk) on Oct 07, 2002 at 20:22 UTC
    The thing is, I'm writing YAHTMLM (Yet Another HTML Module), and have items like "FormManager::Component::Select", "FormManager::Component::Text" - all inside FormManager.pm. I haven't had any trouble using the module so far except for this one bug. I'd like to have them all loaded with FormManager, so you get a whole bunch of default components without having to 'use' each one. There may be a better way, but see problem 2 :)