Похоже, вам нужен код, который выглядит следующим образом:
use strict;
use warnings;
use Device::SerialPort;
die "Cannot Open Serial Port\n"
unless my $PortObj = Device::SerialPort->new(
$^O eq "MSWin32" ? "com1" : "/dev/ttyS0"
);
Обратите внимание, я не знаю, является ли com1
правильный последовательный порт для вашего кода, но я думаю, что вам нужно что-то подобное. Если у вас есть много других платформ, вам нужно иметь дело с хэшем, может быть лучшим вариантом:
use strict;
use warnings;
use Device::SerialPort;
my %port_name = (
MSWin32 => "com1",
linux => "/dev/ttyS0",
);
die "I don't know what serial port to use on $^O\n"
unless exists $port_name{$^O};
die "Cannot Open Serial Port\n"
unless my $PortObj = Device::SerialPort->new($port_name{$^O});