добраться до хеша в объекте
- From
- Sergey A. Shkuratov (2:5020/133)
- To
- All
- Date
- 2005-06-17T13:04:22Z
- Area
- RU.PERL
Пpиветствую, All.
Создаю объект, имея в качестве исходных данных имя его типа. Приближённо:
require "$typename";
$typename =~ s/\//::/g;
import $typename;
my $doc;
$doc = \$doc;
$doc = bless $doc, $typename;
Хочется иметь возможность:
-- писать или не писать в начале $typename.pm хэш, скажем, %options, не обрамляя его лишними врапперами, поскольку модули $typename.pm буду писать
не только я и чем меньше ограничений на синтаксис, тем лучше.
-- определять, есть ли этот хеш в $typename.pm, и действовать в зависимости от.
-- оперировать с содержимым хеша во внешнем относительно $typename.pm пространстве имён. Попытка писать что-то вроде %{$doc->options} приводит
к ругани на отсутствие функции options в модуле $typename.pm, что, в общем,
логично.
Вопрос: как доступиться извне к хешу в модуле $typename.pm, если объект $doc создан так, как написано выше?
WoW!
... Дом белой птицы.
---
* Origin: Уходя - не гpусти, пpиходя - не pадуйся. (2:5020/133)
SEEN-BY: 450/208 452/25 100 454/9 455/15 461/33 74 106 640 464/34 465/204
SEEN-BY: 467/24 469/125 200 478/44 65 550/5068 4600/126 4614/9 4623/56 4625/9
SEEN-BY: 4626/100 4632/10 4635/99 1024 4641/444 4642/27 48 4657/50 5001/50
SEEN-BY: 5002/76 5002 5003/34 5010/53 146 5011/13 5015/4 28 214 5020/52 115
SEEN-BY: 5020/128 133 150 175 486 600 642 744 794 921 958 968 982 1100 1169
SEEN-BY: 5020/1212 1234 1626 1642 1653 1826 1829 1930 2044 2200 2345 2908 4400
SEEN-BY: 5020/4441 5021/2 5023/11 5024/1 73 5025/19 5030/69 195 382 436 611
SEEN-BY: 5030/920 1016 1039 1520 1688 5031/7 63 5032/11 20 5033/21 35 5034/8
SEEN-BY: 5035/38 63 5036/13 5037/21 36 5038/4 5040/33 47 5041/4 5045/7 42
SEEN-BY: 5047/47 5049/6 157 5050/9 41 5051/35 5053/16 38 5054/1 8 9 35 36 37
SEEN-BY: 5054/45 50 66 67 81 85 5055/177 5056/16 5058/77 5059/2 9 20 5060/90
SEEN-BY: 5062/4 7 5063/51 5064/7 35 5070/26 66 5071/22 5075/37 5077/70 5079/49
SEEN-BY: 5083/13 5090/23 105 5093/4 27 33 5096/18 5100/113 6023/1 6033/2727
SEEN-BY: 6070/5
PATH: 5020/133 52 5054/1 37