On Friday, February 15, 2013 11:31:40 Colin Grogan wrote: > So, I have my structure like so: > > $PROJHOME > > |-src > | > |-utils > | > |- Logger.d // contains "module utils.Logger" > |- Props.d // contains "module utils.Props" > |- utils.d // contains "module utils; > > public import utils.Logger, > utils.Props;" > > Then, i just 'import utils' in my code. > > Or would I have to have Logger.d in a directory called > src/utils/Logger/Logger.d to be able to declare the module > 'utils.Logger'?
utils/logger.d would be utils.logger. utils/logger/logger.d would be utils.logger.logger. The file paths and the import paths are identical. It's just that the file paths have slashes, and the import paths have dots. And unlike Java, there is zero connection between classes and modules. You could have many classes in a single module or none at all. Also, it's common practice to use all lowercase for module and package names (primarily to avoid any risk of different OSes treating the casing differently I believe - i.e. Windows doesn't care about casing whereas *nix does; so, on Windows, you could screw up you're casing, and it would work, whereas on Linux, it wouldn't). - Jonathan M Davis