Изучаем Perl

975b8bba

Массивы и списочные данные"


1. Вот один из способов решения этой задачи:

print "Enter the list of strings:\n";

@list = <STDIN>;

Sreverselist = reverse @list;

print @reverselist;

Первая строка приглашает ввести строки. Вторая строка считывает эти строки в переменную-массив. Третья строка формирует список с обратным порядком расположения элементов и заносит его в другую переменную. Последняя строка выводит результат.

Последние три строки можно объединить:

print "Enter the list of strings:\n";

print reverse <STDIN>;

Этот код работает аналогично предыдущему, так как операция print ожидает ввода списка, а операция reverse возвращает список. Далее операции reverse нужен список значений для реверсирования, а операция <stdin>, применяемая в списочном контексте, возвращает список строк — и они получают необходимое!

2. Вот один из способов решения этой задачи:

print "Enter the line number: "; chomp($a = <STDIN>) ;

print "Enter the lines, end with "D:\n"; @b = <STDIN>;

print "Answer: $b[$a-l]";

Первая строка приглашает ввести число, считывает его со стандартного ввода и удаляет назойливый символ новой строки. Вторая строка запрашивает список строк, а затем с помощью операции <stdin> в списочном контексте считывает все эти строки (до появления признака конца файла) в переменную-массив. Последний оператор выводит ответ, используя для выбора соответствующей строки ссылку на массив. Обратите внимание:

нам не нужно добавлять символ новой строки в конце, потому что строка, выбранная из массива @ь, уже заканчивается таким символом.

Если вы попробуете запустить эту программу с терминала, конфигурированного самым обычным образом, вам нужно будет нажать клавиши [Ctrl+D], чтобы обозначить конец файла.

3. Вот один из способов решения этой задачи:

srand;

print "List of strings: "; @b = <STDIN>;

print "Answer: $b[rand (@b)]";

Первая строка запускает генератор случайных чисел. Вторая строка считывает группу строк. Третья строка выбирает случайный элемент из этой группы и выводит его на экран.



Содержание раздела