Perl:引用/祝福问题

时间:2010-11-03 00:31:32

标签: perl pass-by-reference tie bless

这个想法是在TIEHASH构造函数中实现一个获取[数组,Thread :: Conveyor队列和其他东西]列表的类,

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

将对象引用(如提到的Thread::Conveyor对象)从而将数组引用传递给构造函数的正确方法是什么,所以它可以访问对象?任何传递对象应该被祝福的情况?

1 个答案:

答案 0 :(得分:1)

据我所知,对象不是对象,除非它们是bless - 编辑。

也就是说,构造函数参数只是Thread::Conveyor个对象的arrayref:

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
}