我有一个函数,我想检查一个路径是否存在,如果存在,把它添加到一个数组中。这是我的尝试代码:
# If a path exists, adds the canonical version of that path to an array
sub AddPathCandidate {
my (@$target, $path) = $_;
die ('path needed') unless defined($path);
$path = File::Spec->canonpath($path);
if (-e $path) {
push(@{$target}, $path);
}
}
调用者的外观如下:
my @exampleDirs = ();
AddPathCandidate(\@exampleDirs, $inDir . 'a');
AddPathCandidate(\@exampleDirs, $inDir . "../b/a/$arch");
AddPathCandidate(\@exampleDirs, $inDir . "../../b/a/$arch");
但是,“die”语句总是会执行;AddPathCandidate的第二个参数以某种方式没有通过。
我在这里尝试的东西是否可行,还是有更多“perl-ish”的方法来完成这个任务?