如何更正以下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: $!");
}