在没有任何Perl变量检查的if子句中-e的含义

时间:2014-02-04 13:30:48

标签: perl

我的系统中存在 PERL 代码,其格式如下。

我不确定以下If子句中的对比情况。你能帮我理解一下吗?

if (-e "$array_line_loc[-1]/$array_loc[-1]")
        {
        $location = 1;
    print "Location : $location\n";
        }

2 个答案:

答案 0 :(得分:4)

-e检查文件是否存在。见http://perldoc.perl.org/functions/-X.html

答案 1 :(得分:2)

该片段检查文件(或目录)$array_line_loc[-1]/$array_loc[-1]是否存在。如果是,则会设置$location并打印Location : $location\n

-1索引传递给数组ref将采用最后一个元素。编写该代码段的更好方法是:

...
use File::Spec::Functions qw[ catfile ];
...
if (-e catfile($array_line_loc[-1], $array_loc[-1])) {
...
}