However, packages like XAMPP help greatly in making sure everything runs smoothly when developing on Windows. Nothing in the PHP/MySQL code itself should have to be different on Windows, but configuration settings need to be tweaked prior to launch on a Linux box.
Caveats I can think of when moving code written in Windows to Linux is that Windows uses the backslash instead of the forward slash for directory paths, but I think newer versions of NT support the forward slash, too - please correct me if I'm wrong. Also, Windows uses a semicolon (;) to separate path variables while Linux uses a colon (:).
Windows also uses \r\n instead of just \n as a newline character so when/if you edit the code after porting to Linux, you'll get ^M characters at the end of each line, which I can't stand. A quick global search and replace restores my sanity though.
I don't have any experience at all using Perl on Windows, sorry.