in reply to Prototype mismatch error

Try enclosing your common data structures in a package Common; namespace and referring to them as $Common::foo. This will be handier if you rename 'common.pl' to 'Common.pm'.

Data from a require'd lib is out of scope in the calling file. You may not want to have Common do all your use $module;-ing unless you make it an OO module which inherits from them.

After Compline,
Zaxo