PERL: БИБЛИОТЕКА ПРОГРАММИСТА


PERL: БИБЛИОТЕКА ПРОГРАММИСТА - стр. 39



1.1. Работа с подстроками    29

# Получить 5-байтовую строку, пропустить 3,

#  затем две 8-байтовые строки, затем все остальное
(Sleading, $s1, $s2, $trailing) =

unpack("A5 хЗ A8 A8 A*", $data);

# Деление на группы из пяти байт

@fivers = unpack("A5" x (length($stnng)/5), $string);

# Деление строки на отдельные символы

@chars = unpack("A1" x (length($string), $string);

Комментарий

В отличие от многих языков, в которых строки представлены в виде массива байтов (или символов), в Perl они относятся к базовым типам данных. Это озна­чает, что для работы с отдельными символами или подстроками применяется функция unpack или substr.

Второй аргумент функции substr (смещение) определяет начало интересующей вас подстроки; положительные значения отсчитываются от начала строки, а отри­цательные — с конца. Если смещение равно 0, подстрока начинается с начала. Третий аргумент определяет длину подстроки.

$stnng = "This is what you have";

U      +012345678901234567890  Прямое индексирование (слева направо)

#       109876543210987654321- Обратное индексирование (слева направо)
0 соответствует 10, 20 и т. д

$first =         substr($stnng,  0, 1); п     "Т"

$start =         substr($string, 5, 2); #     "is"

$rest =          substr($string. 13);   n     "you have"

$last =          substr($string, -1);   #     "e"

$end  =          substr($string, -4);   #     "have"

$piece =         substr($stnng,  -8, 3),      #     "you"

Однако функция substr позволяет не только просматривать части строки, но и изменять их. Дело в том, что substr относится к экзотической категории левосто­ронних функций, то есть таких, которым при вызове можно присвоить значение. К тому же семейству относятся функции vec, pos и keys (начиная с версии 5.004). При некоторой фантазии функции local и ту также можно рассматривать как ле­восторонние.

Sstring = "This is what you have";




Начало  Назад  Вперед



Книжный магазин