Показать сообщение отдельно
Старый 02.05.2013, 23:24
Lunatic вне форума Посмотреть профиль Отправить личное сообщение для Lunatic Найти все сообщения от Lunatic
  № 1  
Ответить с цитированием
Lunatic

Регистрация: Oct 2011
Сообщений: 18
По умолчанию Perl(Moose) Assoc Array of Object

Люди добрый! Подскажите. Только начинаю изучать Perl. Как можно создать ассоциативный массив из объектов? Чтобы можно было дёргать методы таким образом
Код:
print TEST->allLTS{'ONE'}->name;
Внутри процедуры создать массив получилось $task{$i}, но как это сделать с помощью Moose, чтобы он был доступен

Собственно мои попытки

Код:
package LTS;{
use Moose;
    has 'name' => (is =>'rw', isa =>'Str',);
    has 'id'   => (is =>'rw', isa =>'Int',);
}
package TEST;{
use Moose;
    #has 'allLTS'  => (is =>'rw',isa =>'ArrayRef[LTask]',);
    sub Create {
        my $this = shift;
        my %task=();
        open(FILE, "<conf.ini");
            while (<FILE>) {
                my @spec = split(chr(9),$_);
                my $i=$spec[0];
                $task{$i}=LTS->new(name=>$_);
            }
        close(FILE);
    }
}