in reply to Can't call method on an undefined value
You're almost certainly using the Bar module before you're defining your $main::logger.
However, your example doesn't demonstrate the problem. Rather than attempting to guess, I'm going to wait for you to fix the example.
My expectation is that if you can produce an example which demonstrates the problem, you'll also work out why it happens and what to do to avoid it. If you still need help after producing the example, I'm sure that we'll be able to help you.