Fel*_*ins -2 parameters perl if-statement
我有一个这样写的脚本:
if (!(-e "ARGV[0]"))
{
printf("\nThis file \"%s\" does not exist.\n\n", $ARGV[0]);
exit;
}
Run Code Online (Sandbox Code Playgroud)
参数"-e"在我的条件下是什么意思?
-e表示"存在文件".您的代码检查名为的文件"ARGV[0]",如果该文件不存在,则打印到控制台.但是,我认为你犯了一个错误并想检查从命令行传入的文件?
如果是这样,请if (!(-e "ARGV[0]"))改为if (!(-e $ARGV[0])).这意味着如果指定的文件$ARGV[0]不存在,则打印错误.@ARGV意味着从命令行传入的东西 - 所以如果你跑了perl myscript.pl hello.txt new.txt,$ARGV[0]就会hello.txt,并且$ARGV[1]会new.txt.
因此,如果从命令行作为参数0传入非现有文件,则此代码会输出错误,因此hello.txt不存在.
if (!(-e $ARGV[0]))
{
printf("\nThis file \"%s\" does not exist.\n\n", $ARGV[0]);
exit;
}
else{
printf("That file exists!");
}
Run Code Online (Sandbox Code Playgroud)
如果您确实要检查是否存在名为的文件,我深表歉意"ARGV[0]".