There are not that many gotcha's writing cross platform especially when you stay within the realm of Perl (not using system specific things like sendmail). DBI is the way to go, I have scripts that run on several flavors of Unix and Win with the only change being the connection string to the database. I believe also the latest version of MySQL does support transactions (not sure about subqueries), but by using DBI you can use MS SQL on the windows box and "something else" on the *nix boxes. Or access the MS SQL server box from whatever platform you run the scripts on.
Mod_perl is most likely something you want to investigate for your VM.