| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Perl: Общие вопросы > Exporter, узнать что экспортируется |
| Автор: Logo 6.2.2010, 19:53 |
| При вызове import передается список импорта по правилам Exporter, т.е. с списками тегов :foo, с !foo и /foo/. Как из этого получить список того что Exporter будет экспортировать? Либо сначала экспортировать, а потом узнать, что он экспортировал, для задачи без разницы. |
| Автор: arto 7.2.2010, 00:00 |
| посмотреть namespace ? |
| Автор: Logo 7.2.2010, 11:54 | ||||
| В смысле? Хочу, чтобы модуль работал через Exporter, но для каждой экспортируемой функции нужно еще произвести дополнительные действия. К примеру из списка:
Получить в процедуре import список:
С реальными именами, с которыми можно работать. До или после export_to_level - не важно. |
| Автор: arto 7.2.2010, 13:47 |
| # perl -MData::Dumper -le 'print Dumper \%Data::Dumper::' $VAR1 = { 'version::' => *{'::version::'}, '/' => *{'::/'}, 'stderr' => *::stderr, 'SIG' => *::SIG, '_<mro.c' => *{'::_<mro.c'}, 'Tie::' => *{'::Tie::'}, 'utf8::' => *{'::utf8::'}, '1' => *{'::1'}, '"' => *{'::"'}, и т.д. |
| Автор: Logo 7.2.2010, 14:42 |
| Не подойдет. Мало того, что надо шерстить всю таблицу имен, так ведь не узнать, действительно ли функция экспортировалась из моего модуля. К примеру, в моем модуле есть функция foo. Но пользователь не захотел ее использовать, а использовал функцию с таким же именем foo из другого модуля, или написал свою. В таблице имен будет функция foo, но реально экспорт foo из моего модуля никто не запрашивал. |