![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| sir_nuf_nuf |
|
||||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
День добрый!
я хочу написать конструктор класса, который можно были бы вызывать как метод класса, так и как метод объекта
однако на этой строке
мы видим ошибку
хотя вот такая строка работает
кто подскажет в чем проблема ? |
||||||||
|
|||||||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
А может попробовать так
|
|||
|
||||
| sir_nuf_nuf |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 920 Регистрация: 6.1.2008 Репутация: 14 Всего: 31 |
да да.. спасибо уже разобрался.
у оператора or оказался очень низкий приоритет =) |
|||
|
||||
| ginnie |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый sir_nuf_nuf,
как приоритет оператора or связан с указанной ошибкой? Это сообщение отредактировал(а) ginnie - 4.2.2008, 14:16 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
|||
|
||||
| KSURi |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 887 Регистрация: 8.6.2006 Где: Russia Репутация: 20 Всего: 27 |
Судя по всему первый вариант интерпретировался вот так: $class = ref($class or $class);, соответственно интерпретатору не понравилось "выражение или выражение". Правильный вариант my $proto = ref ($class) || $class; интерпретируется как "присвоить тип ссылки, если выражение - ссылка, в противном случае присвоить само выражение (рез-тат)" -------------------- Died at Life.pl line 21 |
|||
|
||||
| ginnie |
|
||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 6.1.2008 Где: Москва Репутация: 38 Всего: 49 |
Уважаемый KSURi, спасибо за Ваше пояснение (я тоже так подумал, но это не так, см. P.S.), но оно указывает на низкий приоритет вызова функции ref(), а не оператора or, поэтому я и задал вопрос sir_nuf_nuf.
P.S. Посмотрел приоритеты (в книге Programming Perl), а там написано, что
т.е. || имеет приоритет ниже, чем ref (а or имеет приоритет ниже чем ||). P.P.S. Разобрался, оказалось sir_nuf_nuf был абсолютно прав
Это сообщение отредактировал(а) ginnie - 4.2.2008, 15:32 -------------------- Написать код, понятный компьютеру, может каждый, но только хорошие программисты пишут код, понятный людям. (Мартин Фаулер. Рефакторинг) |
||||
|
|||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |