0

アイデアは、TIEHASH コンストラクターで [配列、Thread::Conveyor キューなど] のリストを取得するクラスを実装することです。

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

オブジェクト参照 (前述のThread::Conveyorオブジェクトなど) を渡して配列参照をコンストラクターに渡し、オブジェクトにアクセスできるようにする正しい方法は何ですか? 渡されたオブジェクトを祝福する必要がある場合はありますか?

4

1 に答える 1

1

私が知る限り、オブジェクトはbless-ed でない限りオブジェクトではありません。

そうは言っても、コンストラクターの引数は単に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
}
于 2010-11-03T13:15:46.237 に答える