Урок 19. Функции для работы
Урок 19. Функции для работы со строками Функция Chomp chomp переменная; chomp список; chomp; Удаляет в конце строки символ указанный переменной $/. Обычно это '\n'. Возвращает количество удаленных символов. Если переменная не указана то используется переменная $_. Если указан список то обрабатывается каждая строка списка и возвращается общее количество удаленных символов. Функция Chop chop переменная; chop список; chop; Полностью аналогично функции chomp но всегда удаляет последний символ строки. Функция Chr Возвращает символ с заданным ASCII кодом. Функция Lc Преобразовать строку в буквы нижнего регистра. Функция Lcfirst Заменить первую букву строки на малую. Функция Length Возвращает длину строки выражения. Функция Ord Возвращает ascii код первого символа выражения. Функция Uc Возвращает строку выражения, в которой малые буквы заменены на заглавные. Функция Ucfirst Возвращает строку выражения, в которой первая буква заменена на заглавную. Функция Substr substr (выражение, смещение, длина); substr (выражение, смещение); Возвращает подстроку выражения, начиная со смещения и заданной длины. Если смещение отрицательное, то отсчет ведется от конца строки. Если длина не указана, то берется все до конца строки. Функция Pack pack (шаблон, список); Упаковывает список в двоичную структуру по шаблону. Шаблон - это строка символов, описывающая порядок и тип упакованных значений. За каждой буквой может стоять число означающее количество повторов. Для всех типов за исключением 'a', 'A', 'b', 'B', 'h' и 'H', упаковывается максимально возможное количество значений из списка. Символ '*' после типа означает использовать оставшиеся параметры. Тип 'a' и 'A' использует только одно значение из списка и добавляет остаток поля либо нуль-символами, либо пробелами (при распаковке по типу 'A' пробелы и нули отбрасываются, а по 'a' - нет). Типы 'b' и 'B' упаковывают строку в указанное число бит. Так же как и 'h' и 'H' в число ниблов (байт). 'P' - упаковывает указатель на структуру с указанной длиной. Числа с плавающей запятой (floats и double) записываются в стандартном для каждой машины формате и могут быть разными для разных типов машин. Заметьте, что Perl всегда использует двойную точность (double), поэтому упаковка и распаковка по типу 'f' приведет к потере точности. Шаблоны для распаковки и упаковки совершенно одинаковы. print(pack("ccc",65,66,67)); # Результат ABC print(pack("A4A3","ab","cdefg")); # "ab cde" print(pack("a4a3","ab","cdefg")); # "ab\0\0cde" Функция Unpack unpack (шаблон, выражение); Функция, обратная pack(). Распаковывает строку выражения по указанному шаблону в массив значений. В скалярном контексте возвращает значение только первого элемента. Шаблоны такие же как и в pack(). Символ '%' в шаблоне означает, что вы хотите получить вместо значения его контрольную сумму. По умолчанию - 16-битную. * * * * Напишите программу, выводящую латинский алфавит. ASCII код первой буквы алфавита - 65. В латинском алфавите 25 букв. Попробуйте записать в файл IP адрес, затем считать его и сравнить (программно с помощью оператора IF) его с текущем IP адресом. Почему, как вы думаете, они не совпали? запись IP адреса осуществляйте такой строкой: print "$ENV{'REMOTE_ADDR'}\n"; [Содержание] [Вступление] [необходимое для начала изучения] [урок 1] [урок 2] [урок 3] [урок 4] [урок 5] [урок 6] [урок 7] [урок 8] [урок 9] [урок 10] [урок 11] [урок 12] [урок 13] [урок 14] [урок 15] [урок 16] [урок 17] [урок 18] [урок 19] [урок 20] [урок 21] [урок 22] [урок 23] [урок 24] [урок 25] [урок 26] [урок 27] [урок 28] [правила хорошего тона] [приложение A] [приложение Б] [приложение В] [заключение] [благодарности] |
Copyright (c) ClericICN, 2002 |