Str*_*ind 4 linux windows perl module perl-module
我有一个需要在Windows和Linux上运行的Perl脚本.问题是我需要use一个仅适用于Windows的Perl模块.
我试过下面的,但它仍然包括你的WindowsStuff包.
use strict;
if ($^O eq 'MSWin32' ){
use My::WindowsStuff;
}
use File::Basename;
use Getopt::Long;
...
...
Run Code Online (Sandbox Code Playgroud)
Mig*_*Prz 12
因为use在编译时生效,所以它不尊重正在编译的代码的普通流控制.特别是,在有条件的假分支内部使用不会阻止它被处理.
你可以做什么?
a)require导入(运行时):
if( $^O eq 'MSWin32' ) {
require My::WindowsStuff;
My::WindowsStuff->import if My::WindowsStuff->can("import");
}
Run Code Online (Sandbox Code Playgroud)
b)use if(编译时):
use if $^O eq 'MSWin32', "My::WindowsStuff";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
97 次 |
| 最近记录: |