|
Posted by Gunnar Hjalmarsson on April 14, 2008, 9:22 am
Please log in for more thread options
sledz@dresearch.de wrote:
> I'm writing an perl script which should communicate over a serial
> port. The script should be able to run in Linux and Win32
> environments. In both environments exist modules to access the serial
> port:
>
> Win32::SerialPort (under Windows)
> Device::SerialPort (else)
>
> I know it is possible to detect the OS using Config::Config. But it
> seems not possible to use different modules depending on this
> information like this:
>
> if ( $OS eq 'WINDOWS' ) {
> use Win32::SerialPort qw( :PARAM :STAT );
> } else {
> use Device::SerialPort qw( :PARAM :STAT );
> }
>
> What's the right way to write such an OS dependent application?
I don't know about "right", but this is one way:
BEGIN {
if ( $^O eq 'MSWin32' ) {
require Win32::SerialPort;
import Win32::SerialPort qw( :PARAM :STAT );
} else {
require Device::SerialPort;
import Device::SerialPort qw( :PARAM :STAT );
}
}
--
Gunnar Hjalmarsson
Email: http://www.gunnar.cc/cgi-bin/contact.pl
|