|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Alex Dedul 2:450/82 16 Sep 2002 12:46:14 To : Artem Chuprina Subject : __DATA__ blocks & use -------------------------------------------------------------------------------- Помню когда-то , 16 Sep 02 в 00:19, Artem Chuprina напиcал для Alex Dedul ниж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> переменную. А потом из нее радостно читалось, сколько влезет. Так ведь ::DATA на стадии компиляции не определено, точнее хэндл не создан. Или ты читал сам руками ? Хм, а это вариант, спасибо, другого тут видимо и не будет. Типа того должно получиться ? ------------------ use lib './'; use Mod; __DATA__ print "Ok"; ------------------- package Mod; use strict; use Cwd; open I, cwd . '/' . $0; my $data = join '', <I>; $data =~ s/.*__DATA__\n?//s; close I; eval $data; return 1; ------------------ WBR, Alex winamp$ my downloads - morcheeba - Otherwise <stopped> --- GoldED+/W32 1.1.4.7 * Origin: Iron Hills Lab. (2:450/82) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/14343d85b9be.html, оценка из 5, голосов 10
|