在perl中使用带有if pragma的lib

时间:2012-03-09 11:27:01

标签: perl

在perl中,我们可以这样做:

  

使用lib LIST;

在@INC中包含路径列表。同样,我们可以这样做:

  

如果CONDITION,MODULE =>使用ARGUMENTS;

有条件地包含模块。

是否可以混合使用两者,例如

  

如果是CONDITION,LIST,则使用lib;

有条件地包含路径列表。这似乎不起作用。

编辑: 对不起,但我还是不能让它运转起来。这就是我在做的事情,但它不起作用。你能告诉我什么是错的吗?

use Data::Dumper;

BEGIN {
    my $env=$ENV{'ENV'};
    use if $env eq 'OLD', lib => '/home/vivek/OLD';
    use if $env eq 'NEW', lib => '/home/vivek/NEW';
}

print Dumper \@INC;

1 个答案:

答案 0 :(得分:10)

if是一个单独的模块(严格来说是 pragma ),它将该行的其余部分作为参数。 lib也是一个单独的语用库。看一下记录的语法use if CONDITION, MODULE => ARGUMENTS,你会看到你应该写的是

use if CONDITION, lib => LIST;

工作正常。