My understanding from similar recent investigations is that Module::Build is newer than the old Makefile.PL tools and should be used instead. But Dist::Zilla offers even better tools for the author (though is hard to install), and Module::Install is even better than Module::Build for whatever technical reasons and in working with up-to-date best practices. (see link
It seems there is a lot to learn about testing, and module creation scripts are well behind the curve in what they set up for you.
The normal installation process will run the C compiler if necessary. For these build tools, you just have to use the proper naming and directory convention and it knows what to do.