use modules OS dependent
am 14.04.2008 15:24:14 von sledz
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?
Steffen
PS: Fup to comp.lang.perl.modules
Re: use modules OS dependent
am 14.04.2008 15:59:09 von jurgenex
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 );
This is explained about halfway down in the documentation for "use".
The "BEGIN" forces the "require" and "import" to happen at
compile time.
>What's the right way to write such an OS dependent application?
Don't use use() but an explicit require() and import() without the
enclosing BEGIN.
jue