Сравнение строк в Perl - PullRequest
       4

Сравнение строк в Perl

0 голосов
/ 27 июля 2011

У меня есть код Perl для сравнения 2 строк

Первая строка, которую я получаю при разборе содержимого URL (скажем, $ version и его значение - CVP-LATEST-5.3.4.iso)

Еще одна строка: я открываю локальный файл (info.txt) и читаю его. Файл содержит только 1 строку (скажем, $ oldversion и его значение - CVP-LATEST-5.3.4.iso)

Я получаю обе эти строки в $ version и $ oldversion

после этого я делаю

if ($version ne $oldversion)
{
print "Im doing something here\n");
unlink(info.txt);
open file info.txt
print $version to into.txt
close info.txt
}
else
{
print "ERROR\n");
}

Здесь вы можете увидеть, совпадают ли $ version и $ oldversion с ошибкой. Все отлично работает до:

Когда я открываю файл info.txt и вручную редактирую (я нажму клавишу Backspace, а затем снова наберу те же символы), а затем сохраню и выйду.

Даже сейчас $ version и $ oldversion должны иметь одинаковое содержимое, потому что я нажал клавишу Backspace и позже ввел тот же удаленный указатель.

Теперь, когда я запускаю сценарий, я вижу, что цикл IF будет ИСТИНА вместо ЛОЖЬ. Поскольку содержимое одинаково, ЕСЛИ должно быть ЛОЖНЫМ, но это происходит.

Понятия не имею, что происходит. Я попытался напечатать $ version и $ oldversion до и после оператора IF, он печатает те же самые значения, но если IF становится TRUE. Я читаю содержимое файла следующим образом.

my $oldversion = <FILE>;

1 Ответ

2 голосов
/ 27 июля 2011

Вы можете попробовать это:

my $oldversion = <FILE>;
chomp($oldversion);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...