The doll structure is as follows:
/etc/puppet/modules/modulename/manifests/init.pp class modulename{ ----- }
submodule1 and submodule2 can be directories inside /etc/puppet/modules/modulename/manifests/
and each of them may contain .pp files. eg:
/etc/puppet/modules/modulename/manifests/submodule1/foo.pp class modulename::submodule1::foo{ notify{"I am in modulename->submodule1->foo":} }
You can enable the class as follows:
include modulename::submodule1::foo
source share