Perl файл существует, тест не пройден, когда путь содержит пробелы
Ниже приведен пример того, о чем я говорю
$PathPlusFileName gets set in Gtk2 File Chooser dialog SUB
if (-e $PathPlusFileName) {
print "found file\n";
} else {
print "did not find file\n";
}
Блок IF работает до тех пор, пока в имени PATH нет пробелов. Попробовал дважды процитировать путь, не помогло. Любые предложения о том, как исправить, будут оценены.
3 ответа
Работает нормально:
#!/usr/bin/perl
use strict;
use warnings;
my $filename = 'name with spaces';
open ( my $testfile, '>', $filename ) or warn $!;
if ( -e "name with spaces" ) {
print "\"$filename\" exists\n";
}
Я подозреваю, что вы найдете что-то еще не так. Мое первое предположение было бы - вы не забыли chomp
ваш вклад? Но мы не можем ответить, не видя, как это значение установлено.
Как оказалось, предыдущий программист, работавший над разделом GUI пакета, оставил эту строку тестового кода активной. $PathPlusFileName =~ s/ /\ /g; Один был удален, если (-е работал как положено. Спасибо всем за помощь и предложения!
Просто поместите вашу переменную в кавычки:
if (-e "$PathPlusFileName")