Доступный Perl (1)

Тем, кто пользуется перлом регулярно, не надо объяснять, что на этом языке возможно писать программы, которые легко читать, модифицировать и сопровождать. Тем же, кто больше полагается на общественное мнение, но хочет познакомиться с языком, требуется хорошее введение в Perl.

Мне интересно выяснить, что должно быть в таком курсе. За основу я беру главы Camel Book.

Глава 1. Обзор Perl
Первый пример здесь — print «Howdy, world!\n»;. Я уже упоминал, насколько противоречивые чувства приходится теперь испытывать с этой фразой, имея 5.10. В Perl 6 это проще (как впрочем и многие другие аспекты).

Подраздел «Стандартный пример»
Здесь приведена программа из 19 строк, содержащая работу с файлами. По своему опыту могу сказать, что знакомство с работой файлов я откладывал как можно дольше (это было в дореволюционные времена на Паскале).

Для начинающих важно быстро запустить программу. Выполнить программу на перле (как и на многих других языках) возможно несколькими способами — однострочником, в интерактивном режиме, либо передав интерпретатору имя файла. Здесь сильное противоречие: с одной стороны, важно не показывать все это разнообразие на первых страницах, с другой — показать как можно раньше, перед тем, как перейти к более серьезным вещам. Равновесие, на мой взгляд, пользоваться интерактивным режимом или однострочными программами до тех пор, пока примеры не станут длиннее 🙂

Еще есть вопрос яйца и курицы: с чем знакомить раньше — с оператором присваивания или с переменными. С одной стороны, оператор = стоит в ряду с другими (например, арифметическими, которые работают и с константами), с другой, без переменных он не нужен.

С операторами возникает еще одна неоднозначность: хочется избежать таблиц с приоритетами. Возможно, есть смысл пользоваться подходом, применяемом в грамматиках PGE — вместо явного указания используются относительные приоритеты, например, «умножение сильнее сложения, а деление — такое же».

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Retype the CAPTCHA code from the image
Change the CAPTCHA codeSpeak the CAPTCHA code