in reply to inheritance problems

ccn's solution will work, but in the long run, it's probably a better idea to put the Worker and Manager packages in their own module files (Worker.pm and Manager.pm) and use Worker; and use Manager;.

That will make sure all setup code is run before any calls to those packages are made. (The problem with your code is that Manager->new_worker() is called before @Manager::ISA is set)

Joost.

update: and use bless {}, $classname;