in reply to Mulit-Platform use case

About two four years ago (wow, the time flies!), I was messing around with a script I wanted to run on a bunch of different systems, so I was doing a lot of OS detection. I just modified that slightly to check the code and the following syntax worked just fine:

if ($^O eq "MSWin32") { use Win32; }

I'll throw the rest of the OS detection craziness into my scratchpad, if anyone is interested in it.

Replies are listed 'Best First'.
Re^2: Mulit-Platform use case
by cdarke (Prior) on Mar 19, 2009 at 20:23 UTC
    That will not work stand-alone because (as moritz said) use is executed at compile time. Even if placed in a BEGIN block.
    For example, on Windows:
    use strict; use warnings; if ($^O ne "MSWin32") { use POSIX; } local $, = "\n"; print keys %INC
    shows that POSIX.pm is loaded.