В предыдущих примерах вы научились построению строковых литералов, используя интерполяцию переменных. Вы также научились выполнять соединение строковых литералов и строковых переменных. В этом разделе вы видите, что Perl предоставляет большой набор функций, с помощью которых скрипты могут манипулировать строками.
Функция CHOP
Функция chop удаляет последний символ строки. Она имеет следующий формат:
$character = chop(Str);
Функция chop возвращает удаленный символ. Скрипты языка Perl широко используют chop для удаления символа перехода на новую строку и символа конца строки.
Функция INDEX
Функция index осуществляет поиск заданной подстроки в строке. Она имеет следующий формат:
$location = index(Str, SubStr[, Offset]);
Функция index возвращает индекс первого вхождения подстроки( SubStr) в строку (Str). Факультативно может быть задан сдвиг отначала (Offset), после которого начинается поиск. Если подстрока не найдена, возвращается значение -1. В следующем примере функция index ищет вхождения подстроки "па" после третьего символа встроке "banana":
print index("banana","na",3); # Выведет 4.
Функция RINDEX
Функция rindex ищет последнее, самое правое вхождение подстроки в строку и возвращает значение позиции первого символа подстроки. Функция имеет следующий формат:
$location = rindex(Str, SubStr);
Эта функция аналогична функции index, за исключением того,что она возвращает последнее вхождение, а не первое. Например, в следующем примере функция rindex используется для определения последнего вхождения подстроки "na" в строку "banana":
print rindex("banana","na"); # Выведет 4
Функция LENGTH
Функция length возвращает число символов в строке. Она имеет следующий формат:
$len = length(Str);
В следующем примере функция length используется для вывода числа символов в строке:
print length("banana"); # Выведет 6
Функция SUBSTR
Функция substr используется для удаления части строки. Она имеет следующий формат:
$substring = substr(Str, Offset[,Len]);
Функция возвращает подстроку, т. е. часть строки, длина которой не превышает величины, заданной факультативным параметром Len. Возвращаемая подстрока строки str начинается с символа в позиции, заданной сдвигом Offset. Если параметр Len опущен, то возвращаемая строка содержит символы до конца строки включительно.Если параметр Offset отрицательный, то сдвиг вычисляется от конца строки. Наконец, скрипт может использовать substr как lvalue для выполнения операции присваивания. Следующий фрагмент кода иллюстрирует использование функции substr.
print substr("orange",3); #Выведет "nge" print substr("orange",-2); # Выведет "ge" print substr("orange",2,2); # Выведет "an" $str = "apple"; substr($str,-3) = "ricot"; print $str; # Выведет "apricot"
Примечание: Часто использование операторов языка Perl для регулярных выражений оказывается более эффективным, чем функцииsubstr. Регулярные выражения обсуждаются ниже в данной главе.
Функция JOIN
Функция join соединяет список элементов в строку, разделяякаждый элемент заданным символом. Она имеет следующий формат:
$new_string = join(Str,List);
Функция join конвертирует каждый элемент списка в строку исоединяет строки. Следующий фрагмент кода иллюстрирует использование функции join:
$str = join(",", 0..4,10,20); # Список будет "0,1,2,3,4,10,20" $strn = join ("\t", $a, $b, $c);# Смешает списки
Функция SPLIT
Функция split разделяет содержимое строки на список элементов. Она имеет следующий формат:
split(Delimeter, Str[,Limit]);
Аргумент Delimeter определяет символ, по которому осуществляется разделение, например, пробел, слово, символ табуляции и т.д. Факультативный параметр Limit задает максимальное число элементов, которое может содержать список.
8 8 8
| |