![]() |
Модераторы: korob2001, ginnie |
![]() ![]() ![]() |
|
KSURi |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Столкнулся с неявной (для меня) проблемой при отладке. Может кому-то пригодится в будущем.
Был примерно такой код:
Во время первого запуска я получил ошибку о вызове несуществующего саба. Не понял в чем дело, т.к. у меня есть проверка can для такого случая. Посмотрел код. Оказалось что один из сабов который упомянут в %dispatch действительно не определен (я забыл). Однако проверка can проходила успешно! Оказывается при упоминании ссылки на саб в таблицу символов добавляется соответствующая запись, даже если такой саб на самом деле не определен.
Это сообщение отредактировал(а) KSURi - 16.12.2008, 21:29 -------------------- Died at Life.pl line 21 |
||||
|
|||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
если бы можно посмотреть на пример конструктора и методов с этим хэшем...
нигдне не видел Это сообщение отредактировал(а) gcc - 17.12.2008, 00:32 |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
gcc, не совсем понял, что вы хотите увидеть? Код методов из %dispatch? Или полный код в котором происходит проверка и вызов метода из %dispatch?
-------------------- Died at Life.pl line 21 |
|||
|
||||
gcc |
|
|||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
не знаю, нигде не видел чтобы так записывали:
&foo это подпрограмма приватная, наверное... Это сообщение отредактировал(а) gcc - 17.12.2008, 06:29 |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Это ссылка на подпрограмму.
perldoc perlref -------------------- Died at Life.pl line 21 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
KSURi, нашел вариант, при котором can отрабатывает правильно:
Это сообщение отредактировал(а) ginnie - 17.12.2008, 12:40 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
ginnie, спасибо конечно, буду иметь ввиду. Однако, честно говоря, пользоваться таким вариантом мне что-то не хочется... Слишком он какой-то искуственный для меня чтоли... А для некоторых программистов может показаться вообще не понятным.
-------------------- Died at Life.pl line 21 |
|||
|
||||
ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
KSURi, не подскажите, в чем искусственность этого варианта? В документации (пункт 7) он описан как альтернативный рабочий.
-------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
KSURi |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
ginnie, "искуственный" не значит "неправильный". Для меня это проявляется в том, что такой способ записи встречается довольно редко. Да и банально длиннее получается)
-------------------- Died at Life.pl line 21 |
|||
|
||||
gcc |
|
||||||
![]() Агент алкомафии ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2691 Регистрация: 25.4.2008 Где: %&й Репутация: 1 Всего: 17 |
можно еще так:
![]()
я почти всегда передаю в классы хэши, но иногда надо просто переменную, то так переопределяю:
Это сообщение отредактировал(а) gcc - 20.12.2008, 09:47 |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "Perl" | |
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |