0

我在 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) {

没有运气。

4

2 回答 2

4

问题不在于测试,而在于$file. 当您这样做时,行尾不会被剥离$file = <STDIN>;,并且很可能您的文件名中没有包含行尾的文件。

chomp($file);

读完之后,你应该好好去。

于 2013-02-23T15:43:50.073 回答
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";
}
于 2013-02-23T16:01:49.483 回答