Функция
perldoc -f split
Пользовательские функции и процедуры, как встроенные функции, тоже могут обрабатывать списки: принимать списки параметров и возвращать список значений. Об этом будет подробнее рассказано в лекции 12.
Рассмотренные ранее операции могут вести себя иначе, если они применяются не в скалярном, а в списочном контексте. Так, операция повторения (репликации), чаще всего применяемая к строкам, может также использоваться и для многократного повторения значений списка. Обратите внимание, что она работает именно со списками, поэтому если необходимо размножить значения массива, то его следует поместить в списочный литерал. Например:
@two = ('A', 'B') x 2; # будет: ('A', 'B', 'A', 'B')
@three = (@one) x 3; # в @three трижды повторится @one
С помощью операции повторения можно присвоить одинаковые значения всем элементам массива, например, сделать их неопределенными. Таким образом результат функции
@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 @stdin; # убрать \n в конце всех элементов массива
$n_count = chomp $string; # убрать \n в конце строки
Похожая функция
$last_char = chop $string; # отсечь последний символ строки
chop @array; # отсечь последний символ в элементах массива
Если нужно избавиться только от символов перевода строки, то применение функции
При выполнении Perl-программы ей доступны значения специальных массивов, в которых хранится полезная служебная информация. Вот некоторые из специальных массивов:
@ARGV аргументы командной строки для выполняемой программы
@INC список каталогов для поиска внешних Perl-программ
@_ массив параметров для подпрограмм или буфер для split
Рассмотренные в этой лекции материалы по работе со списками и массивами предоставляют программисту мощные и выразительные средства эффективной обработки больших объемов данных. Обобщением идеи массивов стали ассоциативные массивы, которые будут рассмотрены в следующей лекции.
Лекция 6. Хэши
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии