我需要检查用户主目录中的文件是否存在,因此请使用文件检查:
if ( -e "~/foo.txt" ) {
print "yes, it exists!" ;
}
Run Code Online (Sandbox Code Playgroud)
即使在用户的主目录下有一个名为foo.txt的文件,Perl总是抱怨没有这样的文件或目录.当我用/ home/jimmy替换"〜"时(让我们说用户是jimmy)然后Perl做出正确的判决.
你能解释为什么"〜"不能在Perl中工作并告诉我Perl找到用户主目录的方式是什么?
我注意到-d标志的奇怪行为,以检查文件是否是目录以及目录是否存在.使用~/my_dir我的路径时,它的行为有所不同.
以下代码将返回false,即使该目录my_dir存在,但如果我将其更改为完整路径/home/ricky/my_dir,则该if语句将返回true.
#!/usr/bin/perl -w
#
use strict;
if ( -d "~/my_dir") {
print "Found \n";
}
else {
print "Not found \n";
}
Run Code Online (Sandbox Code Playgroud)
有什么不同?