Вопросы и упражнения
1. Программист предполагал, что функция print в приводимом фрагменте кода Perl отобразит
содержимое переменной $m, а в следующей строке отобразит содержимое массива @record. Найдите ошибки.
$m = 'Исходное данные:\n';
@data = ( 10, Leonard, Euler, mathematician);
print $m, 'Запись: @data';
2. Что напечатают следующие операторы и почему:
$m = "Скаляр \$m\n",
@m = ( 1, 2, 3);
print "Значение равно $m[0]\n";
print "Значение равно $m [0]";
3. Предположим, что есть группа слушателей курса по языку Perl, состоящая из 10 человек.
В середине курса слушатели сдают промежуточный экзамен, а в конце — выпускную работу. За экзамен
и за выпускную работу выставляется оценка по пятибалльной системе. По окончании курса каждый
слушатель получает удостоверение, в котором указано, естественно, его имя, а также оценки за
экзамен и выпускную работу. Разработайте базу данных слушателей курса, которую можно использовать
для автоматизации подготовки удостоверений об успешном окончании курса. (Указание:
воспользуйтесь хэш-массивами.)
4. Дополните реализацию связанного списка из раздела «Связанный список» удалением первого
и последнего элемента списка. (Указание: воспользуйтесь функцией
delete( ) ).
5. Файл регистрации web-сервера представляет собой обычный текстовый файл, каждая строка
которого имеет следующую структуру:
Хост Идентиф Пользователь [Время] "Запрос" Результат Байты
Здесь Хост представляет имя подсоединяемой удаленной машины (сетевое или URL),
Идентиф — идентификатор пользователя, Пользователь — имя пользователя, Время — время
подключения в формате UTC, Запрос — URL-запрос удаленной машины, Результат — код возврата
сервера и Байты — количество переданных на удаленный компьютер байтов. Например,
WWW.M.com - -[24/Nov/2001:02:09:46 +100] "GET /index.html HTTP/1.1" 200 3200
Если идентификатор и имя пользователя не требуются, то вместо них ставятся два символа --.
Разработайте сценарий, который считывает построчно файл регистрации, подсчитывает
количество обращений к web-серверу каждой удаленной машины и распечатывает отчет в формате:
имя машины — количество обращений, а также общее число обращений на web-сервер. (Указание:
воспользуйтесь функцией
split
для выделения имени машины, циклом while и функцией
each
для реализации подсчета посещений и печати отчета.)