|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Andrey Sapozhnikov 2:5020/400 16 Sep 2002 18:56:29 To : Artem Chuprina Subject : Re: __DATA__ blocks & use --------------------------------------------------------------------------------
Artem Chuprina wrote:
> Здравствуй, Alex Dedul.
>
> AD> Hi, Artem !
>
> AD> Помню когда-то , 16 Sep 02 в 00:19, Artem Chuprina напиcал для Alex Dedul
> AD> нижecлeдyющee:
> AD>>> Хочется заиметь доступ к filehandle ::DATA из модуля подключенного
> AD>>> через use. Знаю что напрямую это не сделаешь, потому как use
> AD>>> выполняется on compile time, в то время как ::DATA мы имеем на
> AD>>> стадии выполнения. Пробовал читать SelfLoader, perlsub, perldata и
> AD>>> ничего дельного не вычитал, только еще больше убедился в
> AD>>> неосуществимости сей задачки. И вот чтоб окончательно завалить эту
> AD>>> горячо желанную фичу обращаюсь к общественности, подсобите плиз
> AD>>> ж).
> AC>> Я в свое время делал (кажется, уже не помню) так: кодом модуля (на
> AC>> стадии компиляции) содержимое __DATA__ писалось в глобальную
> AC>> переменную. А потом из нее радостно читалось, сколько влезет.
>
> AD> Так ведь ::DATA на стадии компиляции не определено, точнее хэндл
> AD> не создан. Или ты читал сам руками ? Хм, а это вариант, спасибо, другого
> AD> тут видимо и не будет. Типа того должно получиться ?
>
> А, я не заметил той тонкости, что у тебя это DATA скрипта, а не модуля... Hе
> уверен, может и не получиться.
Если обращение к main::DATA из CHECK {...} по каким-то причинам
слишком поздно для Вас, то оформите ваш модуль как фильтр (в реальности
ничего и не фильтрующий) см. perldoc perlfilter. И будете иметь возможность
поглазеть в содержимое вызывающего скрипта еще на стадии его компиляции.
Только постарайтесь потом не перехитрить собственный парсер выражениями типа:
print <<__XXX__;
__DATA__
__XXX__
__DATA__
Андрей
--- ifmail v.2.15dev5
* Origin: Demos online service (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/528430ff0a3b.html, оценка из 5, голосов 10
|