我有一个函数,我想检查路径是否存在,如果存在,将其添加到数组.这是我试过的:
# 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);
}
}
Run Code Online (Sandbox Code Playgroud)
调用者看起来像:
my @exampleDirs = ();
AddPathCandidate(\@exampleDirs, $inDir . 'a');
AddPathCandidate(\@exampleDirs, $inDir . "../b/a/$arch");
AddPathCandidate(\@exampleDirs, $inDir . "../../b/a/$arch");
Run Code Online (Sandbox Code Playgroud)
但是"死亡"声明总是会执行; AddPathCandidate的第二个参数没有通过某种方式.
我想在这里做什么甚至可能,还是有更多的"perl-ish方式"来实现这一目标?
$target在解压缩参数时声明变量,并从中解压缩@_:
my ($target, $path) = @_;
^ ^^
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
86 次 |
| 最近记录: |