Module::Build::Convert's state of operation

Module::Build::Convert actually does all the background work and can be safely considered the backend, whereas make2build may be looked at as practicle frontend utility. Module::Build::Convert currently exposes two kinds of operation: static approach & dynamic execution. When static approach is being referred, this means ie. that the arguments contained within the Makefile.PL's WriteMakefile() call are being parsed, whereas dynamic execution "runs" the Makefile.PL and captures the arguments provided to WriteMakefile() .

Module::Build::Convert parses statically by default, because the dynamic execution has the downside that code will be interpreted and the interpreted output will be written to the Build.PL, so you have to conclude that the user of the distribution will end up with predefined values computed on the authors system; this is something that should surely be avoided whenever possible! If the parsing approach fails, ie. loops endlessly on input, Module::Build::Convert will be "reinited" again and dynamic execution of the Makefile.PL will be performed instead.