Читаем Язык программирования Perl полностью

Функция split имеет гораздо больше возможностей, о которых будет сказано в лекции, посвященной регулярным выражениям. Подробно познакомиться с которыми можно из системной документации с помощью утилиты perldoc (после флага -f указывается имя искомой функции):


perldoc -f split


Пользовательские функции и процедуры, как встроенные функции, тоже могут обрабатывать списки: принимать списки параметров и возвращать список значений. Об этом будет подробнее рассказано в лекции 12

.

Рассмотренные ранее операции могут вести себя иначе, если они применяются не в скалярном, а в списочном контексте. Так, операция повторения (репликации), чаще всего применяемая к строкам, может также использоваться и для многократного повторения значений списка. Обратите внимание, что она работает именно со списками, поэтому если необходимо размножить значения массива, то его следует поместить в списочный литерал. Например:


@two = ('A', 'B') x 2; # будет: ('A', 'B', 'A', 'B') @three = (@one) x 3; # в @three трижды повторится @one


С помощью операции повторения можно присвоить одинаковые значения всем элементам массива, например, сделать их неопределенными. Таким образом результат функции undef() можно повторить по числу элементов массива:


@array = (undef()) x @array; # или (undef) x scalar(@array)


При необходимости ввести данные в массив можно воспользоваться упомянутой ранее операцией ввода строк <>, читающей строки из входного потока. В скалярном контексте операция "кристалл" считывает одну строку в переменную. Вот так можно в диалоге ввести значения в массив из пяти строк:


for (@stdin = (), $n = 0; $n < 5; $n++) { print 'Введите значение N ', $n+1, ':'; $stdin[$n] = <>; # считать строку в $n-й элемент массива }


В списочном контексте "кристалл" читает в массив за одну операцию все строки файла. Например, так можно заполнить массив данными, вводимыми с консоли:


print "Введите значения - по одному в строке.", "Для окончания ввода нажмите Ctrl-Z (или Ctrl-D).\n"; @stdin = <>; # считать все строки и поместить их в массив print "Вы ввели ", scalar @stdin, " значений.\n";


Операция <> вводит строки полностью, включая завершающий символ перевода строки, который часто не нужен при дальнейшей обработке. Функция chomp удаляет символы перевода строки в конце строки (в скалярном контексте) или в конце каждого элемента списка (в списочном контексте) и возвращает общее число удаленных символов.


chomp @stdin; # убрать \n в конце всех элементов массива $n_count = chomp $string; # убрать \n в конце строки


Похожая функция chop отсекает любой последний символ у строки (в скалярном контексте) или у каждого элемента списка (в списочном контексте) и возвращает последний отсеченный символ.


$last_char = chop $string; # отсечь последний символ строки chop @array; # отсечь последний символ в элементах массива


Если нужно избавиться только от символов перевода строки, то применение функции chomp более безопасно, поскольку она никогда не удаляет значащие символы в конце строки.

При выполнении Perl-программы ей доступны значения специальных массивов, в которых хранится полезная служебная информация. Вот некоторые из специальных массивов:


@ARGV аргументы командной строки для выполняемой программы @INC список каталогов для поиска внешних Perl-программ @_ массив параметров для подпрограмм или буфер для split


Рассмотренные в этой лекции материалы по работе со списками и массивами предоставляют программисту мощные и выразительные средства эффективной обработки больших объемов данных. Обобщением идеи массивов стали ассоциативные массивы, которые будут рассмотрены в следующей лекции.

Лекция 6. Хэши

Перейти на страницу:

Похожие книги

Информатика: аппаратные средства персонального компьютера
Информатика: аппаратные средства персонального компьютера

Рассмотрены основы информатики и описаны современные аппаратные средства персонального компьютера. Сформулированы подходы к определению основных понятий в области информатики и раскрыто их содержание. Дана классификация современных аппаратных средств персонального компьютера и приведены их основные характеристики. Все основные положения иллюстрированы примерами, в которых при решении конкретных задач используются соответствующие программные средства.Рекомендуется для подготовки по дисциплине «Информатика». Для студентов, аспирантов, преподавателей вузов и всех интересующихся вопросами современных информационных технологий.

Владимир Николаевич Яшин

Зарубежная компьютерная, околокомпьютерная литература / Прочая компьютерная литература / Книги по IT
Цифровой журнал «Компьютерра» № 24
Цифровой журнал «Компьютерра» № 24

ОглавлениеБольшие новостиMicrosoft BizSpark: поиски инвесторов и менторов Автор: Григорий РудницкийNASA открыло виртуальную лунную базу Автор: Михаил КарповТерралабПромзона: Катушка с лупой Автор: Николай МаслухинPixel Qi: дисплеи, не слепнущие на солнце Автор: Юрий ИльинПромзона: Батарейки Microsoft Автор: Николай МаслухинСофт: Process Explorer — порнобаннер в прицеле Автор: Николай МаслухинSynaptics: тачпады нового поколения Автор: Олег НечайПромзона: Очки-суфлер Автор: Николай МаслухинМобильный интернет для малого бизнеса Автор: Максим БукинВещь дня: беззеркальная камера Lumix G2 Автор: Андрей ПисьменныйHDBaseT 1.0: дешёвая замена HDMI Автор: Олег НечайПромзона: Воздушный холодильник Автор: Николай МаслухинСофт: Настраиваем Ubuntu с помощью Ubuntu Tweak Автор: Крестников ЕвгенийПромзона: Бескрайний бассейн Автор: Николай МаслухинСпособы обмана в мобильных сетях Автор: Максим БукинСвоя играВасилий Щепетнёв: О пользе словаря Автор: Василий ЩепетневКивино гнездо: Человек против обмана Автор: Берд КивиMicrosoft: что пошло не так Автор: Андрей ПисьменныйКафедра Ваннаха: Скольжение к сингулярности Автор: Ваннах МихаилВасилий Щепетнёв: Гамбит Форт-Росс Автор: Василий ЩепетневКафедра Ваннаха: Облачное программирование и Пуэрто-Рико Автор: Ваннах МихаилВасилий Щепетнёв: Следы на целлулоиде Автор: Василий ЩепетневКивино гнездо: Конфликт криптографии и бюрократии Автор: Берд КивиИнтерактивЛюдмила Булавкина, директор YouDo по маркетингу, о любительском контенте Автор: Юрий ИльинМакс Зацепин и Глеб Никитин о музыкальной игре для iPad Автор: Юрий ИльинСергей Матиясевич (3D Bank) о рынке трёхмерных моделей Автор: Юрий ИльинВ. Репин (ИХБФМ СО РАН) о бактерии из вечной мерзлоты Автор: Алла АршиноваДмитрий Завалишин об операционной системе «Фантом» Автор: Андрей ПисьменныйБлогиАнатолий Вассерман: «Марс-500» Автор: Анатолий ВассерманКак большой оператор споткнулся о маленького SaaS-провайдера Автор: Анисимов КонстантинАнатолий Вассерман: Дальневосточные «партизаны» Автор: Анатолий ВассерманГолубятня-ОнлайнГолубятня: Сидр №4 Автор: Сергей ГолубицкийГолубятня: Бедность Автор: Сергей Голубицкий

Журнал «Компьютерра»

Зарубежная компьютерная, околокомпьютерная литература