in reply to Circular module dependencies

You are probably using some case-insensitive file-system. (update: Using "b" is dangerous for case-insensitive filesytems) Don't use the B package names for yourself, B a core module.

edited: something else is going on, not yet sure what, though.

edited: apparantly, this is some kind of nasty interaction with compiletime/runtime: this error only occurs if you load a.pm as a normal code (instead of useing a.pm):

test.pl:

#!perl use lib '.'; use a;
end then:
> perl -c test.pl [ ... lots of output omitted ] test.pl syntax OK

I don't have the time to investigate this further, though.