if (a == b)
{
eval "require IO::Compress::Gzip qw(gzip)";
}
这是我根据条件包含gzip所做的,但在运行时它会给出如下错误
Can't locate object method "gzip" via package "IO::Handle" (perhaps you forgot to load "IO::Handle"?)
请帮忙吗?感谢。
答案 0 :(得分:3)
要有条件地包含模块,请使用if
pragma
use if ($x == $y), 'IO::Compress::Gzip' => qw(gzip);
请注意,CONDITION中的变量必须是包级别并在BEGIN块中初始化。
或者,您可以使用以下内容:
if ($x == $y) {
require IO::Compress::Gzip;
IO::Compress::Gzip->import('gzip');
}