|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Serg Chervjakov 2:5020/400 17 Jun 2005 21:25:55 To : Sergey A. Shkuratov Subject : добраться до хеша в объекте -------------------------------------------------------------------------------- Fri Jun 17 2005 13:04, Sergey A. Shkuratov wrote to All: SAS> обрамляя его лишними врапперами, поскольку модули $typename.pm буду SAS> писать не только я и чем меньше ограничений на синтаксис, тем лучше. По мойму, этим своим желанием убрать ограничения на синтаксис, ты только все усложнил.. SAS> Вопрос: как доступиться извне к хешу в модуле $typename.pm, если объект SAS> $doc создан так, как написано выше? Давай еще раз по русски.. че ты хочешь? Ты хочешь что бы в каждом _объекте_ был некий %options? Тогда, когда создаешь ссылку на объект, например так: my $self={ options => {'option1'=>'val1'} }; bless $self, $module_name; return $self; соответственно, если у тебя есть объект $your_object, то хэш options ты получишь как my %options_from_your_object=%{$your_object->{options}}; Делать этот options или не делать - дело твое, его наличие можно проверить как: if (defined($your_object->{options})) { } Если ты хочешь, что бы %options был глобальным для модуля и во всех объектах он был один и тот же (что не слишком хорошо пожалуй), то: package your_pack; my %options; sub getOptions { return %options; } получать этот хэш соответственно через getOptions.. Хотя, мне лень проводить тесты, но на 95% уверен, что достанется из обычной программы и как %your_pack::options. Короче - нихрена я не понял, че хочешь:)). Приведи пример. Кода. С описанием что он делает.. Т.е. кода в таком виде как хотел бы ты.. Потому что иначе - не понятно что надо.. --- ifmail v.2.15dev5.3 * Origin: FidoNet Online - http://www.fido-online.com (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/166791306c6b0.html, оценка из 5, голосов 10
|