我还是新来的perl,所以为新手问题道歉!
我正在使用 glob 来引用主目录。
脚本的第一部分命名文件夹的路径并确认它存在:
$path = glob("~/Desktop/Folder/nextFolder/file.txt");
if( !(-e "$path") ) {
print "Error: invalid path <$path>\n";
exit 1;
}
最初我只是使用以下脚本:
$path = "~/Desktop/Folder/nextFolder/file.txt";
if( !(-e "$path") ) {
print "Error: invalid path <$path>\n";
exit 1;
}
但它在执行时抛出了“错误:无效路径”错误。
我已经阅读了 glob ,但我并不理解它 - 我在网上找到了这个解决方案并尝试了它,并且它有效!
有人可以解释它正在做什么来允许引用主目录吗?没有它,为什么这不起作用?
如果需要更多信息,请告诉我们!谢谢!
答案 0 :(得分:3)
来自perldoc -f glob
:
在列表上下文中,返回EXPR值的文件名扩展(可能为空)列表,例如标准的Unix shell / bin / csh。在标量上下文中,glob遍历这样的文件名扩展,当列表用完时返回undef。
~/
是一个shell速记,表示当前用户的主目录。
通过glob
运行~/
会将/home/someuser/
扩展为~
(或主目录所在的位置)。
如果你不扩展它,那么Perl会查找一个实际名为ALL
的目录。
(你只需要遍历列表(一个项目长)一次)。