Конструкция | Хранимое значение | Описание | Контекст (в левой части присваивания) |
---|---|---|---|
@variable | список | весь массив @variable | списочный |
%variable | хэш | весь хэш %variable | списочный |
$variable | скаляр | просто скалярная переменная | скалярный |
$variable[$index] | скаляр | элемент массива @variable, заданный индексом $index | скалярный |
@variable[@list] | список | срез массива @variable, заданный списком индексов @list | списочный |
@variable[$index] | список (из одного элемента) | срез массива @variable, заданный списком из одного индекса $index | списочный |
$variable{$key} | скаляр | элемент хэша %variable | скалярный |
@variable{@list} | список (значений) | срез хэша %variable, заданный списком ключей @list | списочный |
@variable{$key} | список (из одного значения) | срез хэша %variable, заданный списком из одного ключа $key | списочный |
Дополнительные сведения о хэшах можно узнать из справочной документации, обратившись к разделу о типах данных:
perldoc perldata
Хэши - это, наверное, самая популярная структура данных при программировании на Perl. Без них не обходится ни одна серьезная программа, ведь их применение делает многие алгоритмы проще, а программу - понятнее. Материал этой лекции показывает, насколько удобно и просто пользоваться хэшами. Особенный интерес представляет возможность хранения в ассоциативных массивах ссылок на другие структуры данных: массивы, хэши, объекты, подпрограммы. Это позволяет создавать сложные динамические структуры данных, о чем будет сказано в
Лекция 7. Текст, строки и символы
В этой лекции описываются средства работы с текстовой информацией, символьными и строковыми данными, которыми славится язык Perl, начиная с самых первых версий.
Цель лекции: получить углубленные знания о символьных и строковых данных в Perl и освоить специфические приемы работы с ними для успешного решения задач обработки текстовой информации.
Язык программирования Perl, в первую очередь, получил широкую известность как средство обработки текстовой информации - удобное, быстрое, мощное, гибкое. Ларри Уолл создал Perl, чтобы облегчить свою жизнь, когда ему, молодому системному администратору, пришлось заниматься обработкой больших объемов данных, преимущественно текстовых. Удобство работы с текстом заложено практически во всех языковых конструкциях: например, строковый контекст включает автоматическое преобразование чисел и ключей хэша к строкам. В систему программирования Perl встроены необходимые функции для работы с символьной информацией. Наверное, самое мощное средство работы с текстовой информацией - обработка регулярных выражений - эффективно реализована в ядре Perl. Дополнительные средства обработки текста реализованы в стандартных библиотеках. Еще больше функций и классов для работы с текстовыми данными можно найти в модулях из репозитория CPAN.
Текстовая информация хранится в Perl-программе в скалярных переменных. Поскольку Perl не накладывает искусственных ограничений на использование ресурсов компьютера, обычная практика в программах на Perl - считывание всего текста из файла вместе с разделителями строк в одну скалярную переменную, чтобы затем эффективно обработать его. Поэтому в Perl переменные, содержащие символьные данные, называют "строковыми" лишь для краткости, чтобы не говорить "скалярная переменная, содержащая строковое значение".
Уже известные из
'строка в апострофах' или q(строка в апострофах)
"строка в кавычках" или qq(строка в кавычках)
Подобно литеральному списку слов qw, упомянутому в лекции