Domanda

L'idea è quella di implementare una classe che ottiene un elenco di [array, Filo :: code trasportatori e altre cose] in un costruttore TIEHASH,

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

Che cosa è un modo corretto di passare i riferimenti agli oggetti (come accennato Discussione :: Conveyor oggetti) così riferimenti ad array in costruzione, in modo che possa accedere agli oggetti? Eventuali casi in cui un oggetto passato sarebbero state benedette?

È stato utile?

Soluzione

Per quanto posso dire, gli oggetti non sono oggetti meno che non siano bless-ed.

Detto questo, l'argomento del costruttore sarebbe semplicemente un rifarray di oggetti Thread::Conveyor:

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

dove il costruttore è definito nel pacchetto 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
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top