2015-12-03 4 views
0

Je tente de créer un objet dans mon script perl. Par conséquent, j'ai un constructeur

new(;@) 
{ 
    my $class = shift; 
    my $self = {}; 
    bless $self, $class; 
    $self->_init(@_); 
    return $self; 
} 

Et ma _init(;@) fonction, pour initialiser l'objet

my $self = shift; 
if(@_) 
{ 
    my %extra = @_; 
    @$self{keys %extra} = values %extra; 
} 
return; 

Suis-je utiliser ces deux fonctions dans le mauvais sens? Je commence tous les autres sous les deux lignes

my $self = shift; 
croak "instance method called for class" unless ref $self; 

Mais je reçois seulement syntax/String found where operator expected erreurs en retour à chaque fois que je l'utilise.

Par conséquent ma Question: Est-ce que j'utilise les deux fonctions de la bonne façon? J'ai toujours pensé que j'avais seulement besoin d'initialiser $self une fois, comme je l'ai fait, et que je peux pointer tout ce que je veux pour le reste du script.

Répondre