Шаг 74.
Операции отношения. Строковые операции отношения

    На этом шаге мы рассмотрим особенности использования строковых операций отношения.

    Сравнение строковых данных базируется на их упорядочении в соответствии с таблицей кодов ASCII, т.е. символ с меньшим кодом ASCII предшествует символу с большим кодом. Сравнение строк осуществляется посимвольно слева направо. Это означает, что если равны первые символы строк, то сравниваются вторые и если они равны, то сравниваются третьи и т.д. Причем, если строки разной длины, то в конец строки меньшей длины добавляется недостающее для равенства количество символов с кодом 0. Следует отметить, что в отличие от некоторых других языков программирования в Perl замыкающие строку пробельные символы являются значимыми при сравнении строк. В следующем примере показаны сравнения строк, иллюстрирующие изложенные правила.

"A" lt "а";   # Результат: истина (код "А" - \101, код "а" - \141)
"a" lt "aa";  # Результат: истина (к строке "а" добавляется символ
              # с кодом \000, который меньше кода \141
              # второго символа "а" строки правого операнда)
"a" lt "a ";  # Результат: истина (к строке "а" добавляется символ
              # с кодом \000, который меньше кода \040
              # замыкающего пробела строки правого операнда)
"12" lt "9";  # Результат: истина (код "1" - \061, код "9" - \071)
" 9" eq "09"; # Результат:	ложь   (код " " - \040, код "0" - \060)

    Обратим внимание на две последние операции сравнения строковых литералов. Содержимое их операндов может быть преобразовано в правильные числа, и поэтому к ним применимы аналогичные числовые операции отношения. Однако их результат будет существенно отличаться от результата выполнения строковых операций отношения. При использовании операции < в предпоследнем выражении результат будет Ложь, а если в последнем выражении применить операцию ==, то результат будет Истина. Об этом всегда следует помнить, так как Perl автоматически преобразует символьные данные в числовые там, где это необходимо.

    На следующем шаге мы рассмотрим логические операции.




Предыдущий шаг Содержание Следующий шаг