Clear questions and runnable code
get the best and fastest answer
This is not entirely correct.
Mingw (the Active State compatible C compiler) which comes with the make utility is a an Active State package which can be installed with PPM (Perl Package Manager) utility. There are some issues regarding 64 bit Perl and I haven't kept up with the details as I only have a 32 bit machine.
A huge number of packages are available via PPM. I've found the Active State port to be very good, especially if you are on a Windows machine and need graphical stuff. They've done a lot of work to make this look pretty much like any other Windows application.
So far I haven't needed any package that wasn't already available via one of the big repositories. The graphical version of PPM knows the common ones and makes it easy to search in them. Some of these repositories say that they'll consider requests for additional .ppd packages.
From another thread where I installed a module on an Active State Linux machine without root permission, Re: Getting a signal from iptables. Worked great as my compiler was gcc. I adjusted the tutorial a bit for this Linux system as explained, but no big problems.
On a Windows system, building an Active State compatible module that will "work well and play with others" has to do with which memory management DLL that the C compiler links with. MSVCRT.DLL is the DLL that the Windows OS and Active State uses (this is where for example malloc() lives).
GNU gcc and Visual C 6 will link with that library and that library is present on all Windows machines. Other C compilers(eg VS2008, VS2010) on MS Windows will link with their own compiler specific versions of this DLL and that causes problems. Mingw will link with MSVCRT.DLL.
I strongly recommend that an Active State user not fiddle around with "raw CPAN" installs unless absolutely necessary (and that would be a "rare duck"). If you use the "Active State way" which uses pre-compiled .ppd files, and uses their PPM utility, all be ok and the HTML docs will get generated in the normal way.
However, the tools that are required to do a build where a .ppd file is not available with Active State are there - at least for 32 bit Perl installations. And you can run 32 bit Perl on a 64 bit system.
Active State has certain advantages for use in a professional Windows environment. Their tools to build .exe's are better and easier to use than say, pp. It costs a few hundred bucks for a development kit license, but that is a "no brainer" if you are working for a company.
Another advantage of Active State is that it is easy to "clone" my environment. With ppm, I can generate what is essentially an XML file which shows the the modules that I have, where they were installed from... You just run Active State install to get Perl to start with. Then run one command, and your system will get all the modules that I've installed. I don't know how to do that with other versions of Perl. If you do, I'd like to hear about it.