Этот код будет работать во всех ситуациях, а также выполняет загрузку во время компиляции, так как другие модули, которые вы создаете, могут зависеть от него:
BEGIN {
if ($^O eq "MSWin32")
{
require Module;
Module->import(); # assuming you would not be passing arguments to "use Module"
}
}
Это потому, что use Module (qw(foo bar))
эквивалентно BEGIN { require Module; Module->import( qw(foo bar) ); }
, как описано в perldoc -f use .
(РЕДАКТИРОВАТЬ, через несколько лет ...)
Это даже лучше, хотя:
use if $^O eq "MSWin32", Module;
Подробнее о прагме if
1016 * здесь .