in reply to use directives

This can't be your real code. I won't even compile. I'm fairly certain use Common.pm is not valid. Perhaps you mean use Common;?

Are you using package statements at the tops of your modules? If not, everything is going on in the main:: namespace. This would cause "subroutine redefined" errors if your modules define identically named subroutines. Not sure why Exporter would help though.