| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: разработка для Web > Наследования в Perl |
| Автор: washington 17.4.2005, 23:08 | ||||||
| Здравствуйте. У меня токая проблемка. Имеется два модуля. person.pm и employee.pm – последний должен унаследовать все свойство и методы первого. Оба они лежат в папке info.
появляется ошибка [Sun Apr 17 22:16:52 2005] DzTemp.pl: Compilation failed in require at start.pl line 6. [Sun Apr 17 22:17:17 2005] DzTemp.pl: BEGIN failed--compilation aborted at start.pl line 6. Мучаюсь уже второй день. Может быть кто подскажет как решить эту проблему. Спасибо. |
| Автор: korob2001 18.4.2005, 02:03 | ||||||||
В этот код:
Добавь такую строку:
Тоесть просто укажи где нужно искать модули и классы. Точка означает текущий каталог.
Здесь сделай то же самое
ЗЫ: Пользуйся кнопкой "Код" для вставки и подсветки кода. Удачи. |
| Автор: washington 18.4.2005, 11:16 | ||||||||||||||||
Здравствуйте. Благодарю за интерес к моей теме. Что-то не выходит. Если вызывать сразу модуль person.pm из start.pl – то всё работает, а как только начинаю наследоваться в employee.pm говорит Compilation failed in require at start.pl line 5. А когда напрямую запускаю employee.pm то там говорит Global symbol "@ISA" requires explicit package name at employee.pm line 6. Вот код start.pl:
код info\ employee.pm:
код info\ person.pm
Может быть у вас есть какой ни будь работающий пример - может быть я что-то не дописываю где-то. [email protected] |
| Автор: korob2001 18.4.2005, 12:05 | ||||||
| На вот тебе рабочий пример, называй классы и модули всегда с большой буквы, что бы в последствии не путать их с прагмами: Класс Employee.pm
Класс Person.pm
Ну и сам файл который подлючает класс Employee, который наследует все методы класса Person. Файл test.pl
Еще про ООП можешь почитать здесь: http://forum.vingrad.ru/index.php?showtopic=43392&st=0entry334115 Удачи. |