Модераторы: korob2001, ginnie
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как работает модуль Switch? 
:(
    Опции темы
Logo
Дата 17.10.2009, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Не пойму как работают некоторые модули на cpan, такие как switch, PlusPlus. Они фактически вносят измениния в синтаксис языка smile 
PM MAIL   Вверх
arto
Дата 17.10.2009, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



perldoc -m Switch
PM MAIL ICQ   Вверх
Logo
Дата 17.10.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Исходники, естес-но смотреть пытался. Но принципа работы не понял.
PM MAIL   Вверх
arto
Дата 17.10.2009, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1495
Регистрация: 31.10.2004

Репутация: 38
Всего: 40



фильтры исходного текста
PM MAIL ICQ   Вверх
KSURi
Дата 17.10.2009, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27



perldoc Filter::Simple


--------------------
Died at Life.pl line 21
PM Jabber   Вверх
Logo
Дата 17.10.2009, 20:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Здорово, можно свои расширения писать. И код от кавычек он сам отделяет smile 
PM MAIL   Вверх
Logo
Дата 20.10.2009, 22:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Вот только heredoc не отделяет :((((((((((((((
И как ни грустно даже на поведении стандартного модуля switch это сказывается.
Код

use Switch;

print <<'DOC';
switch ($_) {
  case (0) {print "0"}
  case (1) {print "1"}
}
DOC

Код

use Switch;

print <<'DOC';
switch (
DOC

PM MAIL   Вверх
OutlawZ
Дата 27.10.2009, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Я конечно не гуру но использую старый пример реализации оператора switch:
Код

SWITCH:
    {
    if ($i ==1 ) { .....; last SWITCH; }
    if ($i ==2 ) { .....; last SWITCH; }
    if ($i ==3 ) { .....; last SWITCH; }
    $default = 13;
    }

Хотя даже можно его по удобнее сделать но устраивает меня полностью!


--------------------
user posted image
user posted image
PM MAIL   Вверх
Logo
Дата 27.10.2009, 19:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Вопрос то был не в том как реализовать. В 5.10 сейчас уже есть given/when.
PM MAIL   Вверх
OutlawZ
Дата 29.10.2009, 07:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Цитата(Logo @  27.10.2009,  19:31 Найти цитируемый пост)
Вопрос то был не в том как реализовать. В 5.10 сейчас уже есть given/when. 

Можно поподробнее ? я просто все еще сижу на v5.8.8 built for MSWin32-x86-multi-thread , и не слышал об этом если есть ссылка на на эту тему то можете ее скинуть?


--------------------
user posted image
user posted image
PM MAIL   Вверх
KSURi
Дата 29.10.2009, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 887
Регистрация: 8.6.2006
Где: Russia

Репутация: 20
Всего: 27





--------------------
Died at Life.pl line 21
PM Jabber   Вверх
mvsgt
Дата 30.10.2009, 23:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 209
Регистрация: 27.3.2009

Репутация: 1
Всего: 1



Цитата(Logo @  17.10.2009,  20:00 Найти цитируемый пост)
Здорово, можно свои расширения писать. И код от кавычек он сам отделяет smile  


Здорово то оно здорово, но на практике глюки лезут после фильтров. Поэтому, кстати, их и используют редко.
PM MAIL   Вверх
Logo
Дата 31.10.2009, 20:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 694
Регистрация: 22.7.2008

Репутация: 3
Всего: 10



Цитата(mvsgt @ 30.10.2009,  23:33)
Цитата(Logo @  17.10.2009,  20:00 Найти цитируемый пост)
Здорово, можно свои расширения писать. И код от кавычек он сам отделяет smile  


Здорово то оно здорово, но на практике глюки лезут после фильтров. Поэтому, кстати, их и используют редко.

Да я уже заметил, см выше, heredoc не отделяется. Причем исправить это ни как нельзя потому что heredoc оператор такой же, как оператор сдвига <<. И из-за этого нельзя определить, что перед нами. Perl-то сам использует информацию о прототипах, чтобы узнать ху из ху. Вот если бы он записывался по другому, к примеру <<< как в php, проблем бы не было. Надо как нибудь отписать предложение разработчикам.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Perl"
korob2001
sharq
  • В этом разделе обсуждаются общие вопросы по языку Perl
  • Если ваш вопрос относится к системному программированию, задавайте его здесь
  • Если ваш вопрос относится к CGI программированию, задавайте его здесь
  • Интерпретатор Perl можно скачать здесь ActiveState, O'REILLY, The source for Perl
  • Справочное руководство "Установка perl-модулей", можно скачать здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Perl: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0716 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.