在写perl的时候,如果要应用到各种平台的话,比如linux 和windows,会遇到各种问题,有时就是要根据系统类型来加载各种库,之前写的就是这样的,
if($^O eq 'linux'){
use XXX::xxx;
}elsif($^O eq 'MSWin32'){
use XXX1::xxx1;
}
结果是错的,perl提示没有找到XXX这个模块,看来,这里用use的话,perl是回去查找XXX的,就算你没有真的使用,那该怎么办? 去网上搜了一下,解决方法就是如果要动态加载库,可以用
if($^O eq 'linux'){
eval "use XXX::xxx";
}elsif($^O eq 'MSWin32'){
eval "use XXX1::xxx1";
}
记得在写$^O的时候,居然写成了 $^o,看得出区别吗,下次要细心了,附上 $^O 的各种值及对应的系统类型。
版权声明:本文为博主原创文章,未经博主允许不得转载。