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") 
Другие вопросы по тегам