У меня есть код 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>;