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 に答える