Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Perl - маленькие этюды.  (Прочитано 16181 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« : 10-12-2006 20:04 » 

Поскольку я Perl не знаю, у меня сразу куча вопросов возникла по синтаксису. Из приведённого примера я не понял назначения звёздочки перед определением print, в каких местах нужно ставить тире, что означает конструкция "use". Также непонятно внизу: "pod", "cat" и текст между ними - это часть программы?

Вообще в этюдах будут показываться только приёмы программирования на Perl, а описание синтаксиса нужно читать в книгах по Perl?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 10-12-2006 20:45 » 

dimka, этюды только для затравки, пока не появится достойная тема (или пока не надоест).

Согласен, пример не для новичка, но приводить примеры арифметических дейсвий было бы слишком кисло.
Описание языка сожно найти именно в документации. Тем более, что рна идет в поставке. Также я не зря привел название книги. В крайнем случае, как сейчас, можно задать вопрос на форуме.

Звездочка, в данном контексте: обращение к таблице имен. Присвоить этой таблице можно что угодно, т.к. одно и тоже имя могут иметь разные типы данных. В данном случае - присваивается элементу 'print' текущей таблицы имен 'main' ссылка на анонимную подпрограмму (  sub() { }  ).

Не понял на счет тире.

use - директива, в функции которой входит подгрузка модулей и управление поведением Perl-а. Согласно соглашению, имена модулей должны начинаться с большой буквы, а директив управления - с маленькой. В примере (use subs) - директива управления.

subs - директива, объявляющая имена в списке функциями. Это один из вариантов объявления ф-ий, который объявляет списковую ф-ию (переменное число параметров) - не самый лучший, но, скажу по секрету, пример я написал (смотрю дату файла) второго августа, а нынче 10 декабря. Малость я забыл, что именно хотел...

qw(print) - оператор заключение в кавычки списка слов. Т.е. внутри оператора список слов, разделенных пробельными символами, а на выходе - список строк. Можно сказать qw/a b ccc fff ddjhjh/  и получить эквивалент: 'a', 'b', 'ccc', 'fff', 'ddjhjh'. такой метод обычно применяется к идентификаторам, т.к. они не могут содержать пробелов.

pod и cut - специальные конструкции для вставки документации непосредственно в код. Работает только если начинается с начала строки и после ничего нет. Таких конструкций много - я привел необходимый минимум. В комплекте поставки идет утилита, которая позволяет вырезать pod и формировать выходной файл документа (text, man, latex, html). Согласно задумке авторов языка, это должно облегчить программистам создание документации, т.к. ее можно разместить прямо в документируемом участке кода и формат его очень прост для запоминания.
« Последнее редактирование: 16-12-2007 14:01 от Алексей1153++ » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #2 : 10-12-2006 20:51 » 

Кстати, статья еще не опубликована - я ее на след. рассылку приготовил.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 10-12-2006 21:40 » 

Зашёл тут без логина - посетителям тот раздел не виден, т.е. инсайдерскую информацию раскрыл Улыбаюсь. Ладно, умолкаю до официального выхода в свет.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 10-12-2006 21:44 » 

dimka, теперь уж поздно ж) Статья пойдет в рассылку через неделю, а беседа сея только на пользу будет - может чего подправлю или допишу.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 10-12-2006 22:01 » 

Давай сделаем так:
https://forum.shelek.ru/index.php/topic,10267.0.html

На club.shelek.ru это появится вместе с рассылкой, а пока это рабочий вариант.
« Последнее редактирование: 08-12-2011 21:06 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines