in reply to Separate files for CPAN dist

The eventual location of the file is only interesting because it is coupled with namespaces in the use and require statements:
use Some::Module; # searches for Some/Module.pm in @INC
The reason to put "sub-modules" in directories named after the "main" module is that it doesn't pollute other namespaces see my CPAN module for instance - all modules in that distribution are located (when installed) in $some_INC_path/Audio/LADSPA directory, except for the main Audio/LADSPA.pm module. This means that using the module shouldn't have any effect on other modules in the Audio namespace, or outside of it, and can't accidentally overwrite other files from other modules.

Using namespaces "outside" of your distribution's main module's namespace is probably not a good idea, as it makes it difficult for other CPAN authors to check if that namespace is already taken.

update:

Should I even name the "helper" file with .pm at the end? All it holds are those routines that the main pm file uses. I will probably require the file in the module.
I would use a .pm file, because it's easiest to use or require, and I would really recommend to put it in a subroutinedirectory named after the first module, for reasons stated above.