Device::SerialPort and Win32::SerialPort are pretty solid tools for comm control, in my experience.
I recently utilized them to develop a polling system, using several dozen modems to monitor the status of several thousand underground fuel storage tanks.
Some of the more oddball stty settings may require a bit of jiggering to get set right under *nix, depending on the varient (we use AIX), but going back and forth beween Win32 and *nix was not a problem.