in reply to perl Module and directory structure

Personally, I would separate 'A' and 'B' projects into two separate distributions, and then lay them out like this:

MyDist::A root directory/ Makefile.PL README CHANGES MANIFEST MANIFEST.SKIP lib/ MyDist/ A.pm A/ A1.pm A2.pm t/ test1.t test2.t ...

In A.pm, you'd use MyDist::A::A1; and use MyDist::A::A2; to pull in the helpers. If you do want just a top-level namespace, just remove all references to MyDist.

That's consistent with how most CPAN structures are laid out, so I'd stick with what works.