in reply to Strawberry perl - file association?

Maybe the require silently fails (Unlikely - but ...)? One thing you could try is wrapping the 'require statement' in an eval and then checking $@ afterwards e.g.:
eval { require 'common.pl' }; die "Not good:$@\n" if defined $@;
When log_exit is called is it called as main::log_exit? Can't imagine why but is it possible that the indirect invocation causes log_exit to be called in a package other than main?