如何更正以下perl程序以检查目录是否存在 #/usr/bin/perl $path=; 如果(-e$path){ 打印“现在”; } 否则{ 打印“不存在”; }

如何更正以下perl程序以检查目录是否存在 #/usr/bin/perl $path=; 如果(-e$path){ 打印“现在”; } 否则{ 打印“不存在”; },perl,Perl,为什么总是打印“不存在”?您需要使用以下命令从变量中删除换行符: $path=; chomp$path; 您需要使用以下命令从变量中删除换行符: $path=; chomp$path; 你忘了检查EOF 您忘记删除尾随的换行符 当您无法检查目录是否存在时,您会说该目录不存在 #/usr/bin/perl 严格使用; 使用警告qw(全部); 已定义(my$path=); 或退出; 如果(-e$path){ 打印“现在”; } elsif($!{enoint}){ 打印“不存在”; } 否则{

为什么总是打印“不存在”?

您需要使用以下命令从变量中删除换行符:

$path=;
chomp$path;

您需要使用以下命令从变量中删除换行符:

$path=;
chomp$path;
  • 你忘了检查EOF
  • 您忘记删除尾随的换行符
  • 当您无法检查目录是否存在时,您会说该目录不存在

#/usr/bin/perl
严格使用;
使用警告qw(全部);
已定义(my$path=);
或退出;
如果(-e$path){
打印“现在”;
}
elsif($!{enoint}){
打印“不存在”;
}
否则{
死亡(“统计:$!”);
}
最后,首先使用
-e
可能是错误的。这始终是代码中的错误的症状。在尝试打开文件之前,不要检查文件是否存在;试着打开它。在尝试创建目录之前,不要检查目录是否存在;试着去创造它

  • 你忘了检查EOF
  • 您忘记删除尾随的换行符
  • 当您无法检查目录是否存在时,您会说该目录不存在

#/usr/bin/perl
严格使用;
使用警告qw(全部);
已定义(my$path=);
或退出;
如果(-e$path){
打印“现在”;
}
elsif($!{enoint}){
打印“不存在”;
}
否则{
死亡(“统计:$!”);
}
最后,首先使用
-e
可能是错误的。这始终是代码中的错误的症状。在尝试打开文件之前,不要检查文件是否存在;试着打开它。在尝试创建目录之前,不要检查目录是否存在;试着去创造它

#!/usr/bin/perl

$path = <STDIN>;

if (-e $path) {
    print "present";
}
else {
    print "Not present";
}
$path = <STDIN>;
chomp $path;
#!/usr/bin/perl

use strict;
use warnings qw( all );

defined( my $path = <STDIN> );
   or exit;

if (-e $path) {
    print "Present";
}
elsif ($!{ENOENT}) {
    print "Not present";
}
else {
    die("stat: $!");
}