ссылки в perl @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 5 ] 
*   Список форумов / Начинка и техника / Программирование для WWW » ответить » создать топик « | »
Автор Сообщение
dixx
новый человек
0
Сообщения: 7
Зарегистрирован: 01.12.02
Откуда: Москва
Заголовок сообщения: ссылки в perl
Сообщение Добавлено: 5 Февраль 2003, 04:33:00 
Помогите, если кто знает. Имеем динамическую загрузку модуля посредством следующего кода:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
use strict; # !!!

# …

$pkg = "mypkg";
$path = "./modules/mypkg.pm";
require $path;
</pre><HR></BLOCKQUOTE>

Обработка ошибок, связанных с отсутствием модуля по указанному пути и т.п. к делу отношения не имеет, посему не приводится. Далее из загруженного модуля необходимо получить ссылку на функцию, имя которой известно:

<BLOCKQUOTE><font size="1" face="Verdana, Tahoma, sans-serif">code:</font><HR><pre>
$mysub = \& ("$(pkg)::mysub") ;
</pre><HR></BLOCKQUOTE>

(здесь и далее вместо фигурных используются круглые скобки - первые тут почему-то не отображаются, мож кто подскажет?)

Всё было бы хорошо, но как проверить, существует ли в модуле функция с таким именем? В случае вышеприведённого кода при отсутствии таковой всё равно возвращается ссылка (в никуда) и ошибку можно установить только при вызове, что, imho, неизящно. Проверка через таблицу символов, т.е. через %("$(pkg)::") позволяет установить наличие имени, но не позволяет определить, что это - функция, скаляр, ссылка или что-то ещё.

Может быть, кто-нибудь знает, что делать?

[ 05 Февраля 2003: Исправлено Dixx ]
dixx
новый человек
0
Сообщения: 7
Зарегистрирован: 01.12.02
Откуда: Москва
Заголовок сообщения: ссылки в perl
Сообщение Добавлено: 8 Февраль 2003, 01:12:00 
Прошу прощения за флуд, но очень хотелось бы узнать: молчание - знак солидарности? [img]super.gif[/img]
Akela
Констататор
12
Сообщения: 3239
Зарегистрирован: 03.05.02
Откуда: Европа
Заголовок сообщения: ссылки в perl
Сообщение Добавлено: 12 Февраль 2003, 11:32:00 
Не парься, я тут давеча на эту тему Уоллу отписал. В русском переводе его ответ звучал бы как "не страдай ….ней" %) [img]usy.gif[/img]
cmapuk
новый человек
0
Сообщения: 50
Зарегистрирован: 28.08.02
Откуда: Спб
Заголовок сообщения: ссылки в perl
Сообщение Добавлено: 19 Февраль 2003, 16:54:00 
perldoc -f eval
dixx
новый человек
0
Сообщения: 7
Зарегистрирован: 01.12.02
Откуда: Москва
Заголовок сообщения: ссылки в perl
Сообщение Добавлено: 20 Февраль 2003, 16:52:00 
cmapuk[0nline] Дык про eval() я и сам знаю [img]images/smiles/icon_wink.gif[/img]) Весь вопрос в том, как обойтись без него [img]images/smiles/icon_smile.gif[/img])))
*   Список форумов / Начинка и техника / Программирование для WWW « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 5 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100