in reply to Win32::SerialPort, buffer overflow

Technically, the following is incorrect:

#Now declare what we permit to be visible within the module.

Putting things in @EXPORT or @EXPORT_OK doesn't mean that those elements are 'visible', it means that they can be imported by the user of the library. @EXPORT means that those subroutines are imported by the calling script automatically when they use your module, and @EXPORT_OK means the caller has to import them explicitly. It is always advisable to allow a caller to choose what they want to import (ie. best always to use @EXPORT_OK).

Also, here:

our @EXPORT = qw( &Serial_Init &Serial_TrxRcv &Serial_Close);

... you don't need the ampersands (ie. '&').