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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Анонимные функции и прототипы 
:(
    Опции темы
mvsgt
Дата 27.7.2009, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Теперь у меня функции оформляются так:


Код


use Moose;
use My::Types;
use MooseX::Params::Validate;


sub getPortByLocode {
    my $self = shift;
    my ( $pointdate, $port ) = validated_list(
        \@_,
        pointdate => { isa => 'Timestamp_Type', optional => 1, default => time() },
        port         => { isa => 'LOCODE_Type', optional => 1, },
    );
... 

$self->getPortByLocode(pointdate =>time(), port=>'123456' );


или так

Код

sub getPortByLocode {
    my $self = shift;
    my ( $pointdate, $port ) = pos_validated_list(
        \@_,
        { isa => 'Timestamp_Type', optional => 1, default => time() },
        { isa => 'LOCODE_Type', optional => 1, },
    );

$self->getPortByLocode(time(), '123456' );



Так как каждый параметр имеет тип, во втором случае можно контролировать и типы, хотя учитывая coerce в Moose это тоже не очень надёжно. Но в большинстве случаев работает.
PM MAIL   Вверх
Logo
Дата 27.7.2009, 15:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Возможно, так и удобнее, просто пока непривычно.
Но прогу свою я все же на пхп стал писать, достали бесконечные баги.
PM MAIL   Вверх
sir_nuf_nuf
Дата 27.7.2009, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



баги перла ? ну - ну =)


--------------------
user posted image
user posted image
PM MAIL Jabber   Вверх
sir_nuf_nuf
Дата 27.7.2009, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



баги перла ? ну - ну =)


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


Опытный
**


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

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



Ну да=)
PM MAIL   Вверх
Logo
Дата 27.7.2009, 22:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вобще мне концепция и многие фитчи Perl очень нравятся, но когда попробовал написать на нем программу для практической задачи, сразу наткнулся на множество непоняток. Для начала в поворачивать картинки на дробный угол GD отказывается http://forum.vingrad.ru/forum/topic-265977.html, причем аналогичная библиотека PHP делает это спокойно. Ладно, берем ImageMagick. Так он отказывается читать файлы  с путями, в которых есть русские буквы. Пришлось открывать файл через open и дескриптор ему уже передавать. Прототипы опять же эти для анонимных функций, вроде они есть, но оказывается не работают. Когда же интерпретатор стал вылетать на одной строке без каких бы то нибыло сообщений об ошибке, мое терпение лопнуло.
Код

  print "--ok"; #здесь ок
  $image->Read(file=>\*InpFile);
  print "--here"; #здесь уже мертвы


Вобщем язык сыроват.
PM MAIL   Вверх
shamber
Дата 27.7.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(Logo @  27.7.2009,  22:39 Найти цитируемый пост)
Вобщем язык сыроват. 

пошел плакать
PM MAIL Jabber   Вверх
Logo
Дата 29.7.2009, 19:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Кстате, любопытно что прототип через функцию prototype он видит
Код

#!/usr/bin/perl
$fnc = sub ($$$) {print @_};
print prototype \&$fnc;

PM MAIL   Вверх
sir_nuf_nuf
Дата 30.7.2009, 00:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Logo, ничего любопытного.. Прототип скорее всего хранится вместе с самой функцией (дерево PP - кодов), а функция prototype обращается к нему..


Цитата(Logo @  27.7.2009,  22:39 Найти цитируемый пост)

Вобщем язык сыроват. 

Не хочу вас переубеждать - дело ваше. Учтите, что перл - это первый язык в своем классе. Python, PHP, Ruby, Lua (?) появились позже, и учитывали опыт перл. Поэтому: 
а) перле много унаследованного, что не могут выкинуть из соображений совместимости
б) перл СТАБИЛЕН. Те баги которые вы привели - это баги не перла, а библиотек.. ну что поделаешь - есть хорошие, а есть и плохие. Это скорее минус перла..
в) В перле (таков уж стиль авторов) мног вещей которые сделаны на будущее. Т.е. то на что компилятор не ругается, но что пока не имеет эффекта. Это НЕ баги. Такие фичи (как и прототипы анонимок) либо не указывают в документации, либо пишут, что это на будущее.

Понимаете какая ситуация - вы началиизучать язык - на глаза вам попалась какая-то фича (которую никто и не использует на практике), которая показалась вам важной, но плохо реализованной - из за этого заключение о всем языке.. 



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


Опытный
**


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

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



Согласен, разве что за исключением пункта в).

Добавлено через 3 минуты и 35 секунд
Но все равно обидно, что вот по крайней мере обработка изображений так глючит. Идеального инструмента не существует выходит. Ждем перл 6. А пока перл буду попробовать применять в других вещах, когда будет потребность.
PM MAIL   Вверх
sir_nuf_nuf
Дата 5.8.2009, 15:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата(Logo @  4.8.2009,  16:35 Найти цитируемый пост)
Идеального инструмента не существует выходит.

bingo!

И чем дольше работаешь - тем больше понимаешь, что это общее свойство всего..


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


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

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


 




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


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

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