我经常做复杂的文件/目录/符号链接测试,并且正在编写一个子程序来这样做。
例如,而不是
if (-x $file)
写
my $test = '-x';
if ($x $file)
Run Code Online (Sandbox Code Playgroud)
我可以改变$x
是-f -r -e
或什么的。
我已经彻底阅读了文件测试文档,https://perldoc.perl.org/functions/-X
并且似乎没有任何技巧可以做到这一点。
我已经阅读了File::Find
https://perldoc.perl.org/File::Find但我不想在每次搜索时都编写一个单独的子程序,这会使代码变得非常丑陋和冗长。
有什么我错过的东西或任何技巧吗?
这是使用调度表的另一种方法:
my $file = 'test.txt';
my %ftest = (
'-x' => sub {-x $_[0]},
'-f' => sub {-f $_[0]}
);
my $test = '-x';
if ($ftest{$test}->($file)) {
say "Executable";
}
else {
say "Not executable";
}
Run Code Online (Sandbox Code Playgroud)