Michael Schwern, maintainer of ExtUtils::MakeMaker, also called it broken and said he wanted to fix it at some point. It makes a layout which is practical only if you are doing an XS module with an actual compile step. For pure perl modules, it is very annoying to develop within. Either you have to keep installing it every time you edit the file, or you mess with @INC and edit it within the blib/ directory (where it goes when you do the make) and then copy it back into place when you finish. It's even worse if you have multiple modules in your distribution with different namespaces (i.e. Foo::Something and Bar::Something). I have seen people other than me get extremely confused by the h2xs structure. Basically, I can't see a good reason to use when ExtUtils::ModuleMaker exists.