|laziness, impatience, and hubris|
Well, I'm not sure, but here are some observations. Anyone more knowledgeable feel free to correct and add info.
There is a file called "Config.pm" in perl's lib. It contains information on what C compiler to use, and what flags to pass to it when compiling any C code for installing a perl module.
The data in Config.pm about these things seem to be dependant on what compiler perl itself was compiled with in the first place, for your computer. ActivePerl is a binary distribution and hence precompiled. For ActivePerl 5.005 this is Microsofts C compiler (cl.exe). I guess this is true also for v 5.6 that you are using.
It should be possible to edit Config.pm and tweak the settings so that you can use gcc instead, e.g. change:
... and then go on to change flags in a suitable way. You must also have gcc in your PATH. I tried doing this yesterday, with mingw's gcc and the help of a friend who knows C. It didn't work out,and we resorted to installing Microsoft C++ instead. Then it worked like a breeze, installing Text::CSV_XS for DBD::CSV.
In order to install a module with C code in it you then do the usual "make", "make test" and "make install". So you need a make program. There is one with gcc but I don't know if it works with perl on Win32, never tried it. There is however a make program from Microsoft called nmake freely available. It works well and you type "nmake", "nmake test" .. etcetera to use it.