我在perl的第一个下午,我很难弄清楚我的脚本出了什么问题。我似乎没有正确使用文件测试操作符,但我不确定我是如何错误地使用它。
use v5.14;
print "what file would you like to find? ";
my $file = <STDIN>;
my $test = -e $file;
if ($test) {
print "File found";
}
else {
print "File not found";
}
我也尝试用
替换第5行和第6行if (-e $file) {
和第6行
if ($test == 1) {
没有运气。
答案 0 :(得分:4)
问题不在于测试,而是$file
的内容。执行$file = <STDIN>;
时,行尾不会被删除,并且您可能没有文件名中包含行尾的文件。
chomp($file);
阅读之后,你应该好好去。
答案 1 :(得分:1)
http://perldoc.perl.org/functions/-X.html
use v5.14;
use warnings;
use strict;
print "what file would you like to find? ";
#chomp to remove new line
chomp my($filename = <STDIN>);
#test if exists but can still be an empty file
if (-e $filename) {
print "File found\n";
} else {
print "File not found\n";
}