Perl: ссылка на вопрос / благословение - PullRequest
0 голосов
/ 03 ноября 2010

Идея состоит в том, чтобы реализовать класс, который получает список [массивов, потоков :: очередей конвейера и прочего) в конструкторе TIEHASH,

use AbstractHash; 
tie(%DATA, 'AbstractHash', \@a1, \@a2, \$tcq);

Как правильно передавать ссылки на объекты(как упоминалось Thread :: Conveyor объекты), таким образом, ссылки на массив в конструкторе, чтобы он мог получить доступ к объектам?Есть ли случаи, когда переданный объект должен быть благословлен?

1 Ответ

1 голос
/ 03 ноября 2010

Насколько я могу судить, объекты не являются объектами, если они не * bless -ед.

При этом аргумент конструктора будет просто arrayref из Thread::Conveyor объектов:

my $data = AbstractHash->tie ( \@a1, \@a2, \$tcq );

, где конструктор определен в пакете AbstractHash:

sub tie {

    my $class = shift;  # Implicit variable, don't forget

    my $data = {
                 someArray => +shift,
                 queues    => +shift,
                 someValue => +shift,
               };

    # $data starts life as a hashref, make it an 'AbstractHash'

    bless $data, $class; # $data is no longer a hashref
    return $data;        # AbstractHash object returned
}
...