Thread Hashref deref (15 answers)
Opened by Froschpopo at 2007-11-08 21:17

pktm
 2007-11-08 23:33
#102083 #102083
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
$self->init($self, @_); willst du so wohl nicht haben.
$self->init(); (ohne Parameter) übergibt der init()-Funktion $self als ersten Parameter.
Immer wenn du eine Methode (=Funktion einer Klasse) über ein Objekt aufrufst erhälst du das aufrufende Objekt als ersten Parameter.
mit my $self = shift; nimmst du dieses Objekt dann aus dieser Liste heraus.
Da shift; das Element aus der Argumentliste entfernt bleiben nur noch die Parameter übrig. Leider übergibst du $self zweimal. Einmal durch '$self->' und einmal als Bestandteil der Parameterliste '($self, @_)'.

Wirf daher mal das $self aus der Parameterliste raus und schau was passiert (und sieh es dir auch mit dem Dumper an):
Code: (dl )
1
2
3
4
5
# Aufruf: $self->init(@_).
sub init {
my $self = shift;
print Dumper \@_;
}
http://www.intergastro-service.de (mein erstes CMS :) )

View full thread Hashref deref