Ciao,
hai inserito prima?
use Device::SerialPort;
se si allora ti dice che non si aspetta '($', in $port = new Device::SerialPort ($PortName).
Essendo invece un costrutto esatto mi viene da pensare che ci possano essere problemi di codifica dei caratteri, ciò può avvenire quando un file viene scritto su un sistema con editor che supporta UTF-8 e poi portato si iso-8859-1 o viceversa.