A package is a division of the global namespace; that means you can have a global variable $foo and/or a sub named foo in one package and a different global variable $foo and different sub named foo in a different package.
A "module" is a file named according to the package it contains, so module
Foo::Bar would be in a file named Foo/Bar.pm. There's no need for packages to be modules or for a module to contain only that one package.
The term "module distribution" refers to a collection of one or more modules that get built/installed together. Sometimes the "distribution" part is left off and
it's just called "module", but it's really a different idea than a single module.