[EMAIL PROTECTED] wrote: > I have a Perl application that should work on both Windows and Linux. > On Windows I use some of the Windows-specific modules, e.g. > "Win32API::File". So my code have things like:
Check perldoc perlvar namely the $^O variable that holds your OS name e.g: C:\>perl -e "print $^O" MSWin32 also while use statements do happen at compile time, meaning you cannot conditionally include stuff, you can always use require instead. perldoc -f use Quote: It is exactly equivalent to BEGIN { require Module; import Module LIST; } End quote. You can also check out do and import in perlfunc. Another tip, see how it is done in modules, e.g. from: C:\Perl\lib\File\Spec.pm my %module = (MacOS => 'Mac', MSWin32 => 'Win32', os2 => 'OS2', VMS => 'VMS', epoc => 'Epoc', NetWare => 'Win32', # Yes, File::Spec::Win32 works on NetWare. symbian => 'Win32', # Yes, File::Spec::Win32 works on symbian. dos => 'OS2', # Yes, File::Spec::OS2 works on DJGPP. cygwin => 'Cygwin'); my $module = $module{$^O} || 'Unix'; require "File/Spec/$module.pm"; @ISA = ("File::Spec::$module"); etc... Hope this helps. BTW: this is the first time I'm viewing the File::Spec source. reading bits of interesting code is a great way to learn. -- With kind regards Veli-Pekka Tätilä ([EMAIL PROTECTED]) Accessibility, game music, synthesizers and programming: http://www.student.oulu.fi/~vtatila _______________________________________________ Perl-Win32-Users mailing list Perl-Win32-Users@listserv.ActiveState.com To unsubscribe: http://listserv.ActiveState.com/mailman/mysubs