我有一个相对路径
$base_path = "input/myMock.TGZ";
myMock.TGZ是位于输入文件夹中的文件名。
文件名可以更改。但是路径总是存储在$ base_path中。
我需要检查该文件是否存在于$ base_path。
解决方法
使用-e file-test运算符测试给定路径中是否存在某些内容。
print "$base_path exists!\n" if -e $base_path;
然而,这个测试可能比你打算更广泛。上面的代码将生成输出,如果一个普通文件存在于那个路径,但它也将触发一个目录,命名管道,符号链接,或更奇怪的可能性。 See the documentation。
给定.TGZ在你的问题的扩展,似乎你期望一个普通文件,而不是替代品。 -f文件测试运算符询问路径是否导向到纯文件。
print "$base_path is a plain file!\n" if -f $base_path;
perlfunc文档涵盖了Perl’s file-test operators的长列表: