Thread Von CGI.pm Methods erben
(25 answers)
Opened by rosti at 2011-04-12 10:35
Die Methoden werden in dem Moment geerbt, wenn mit use base 'CGI' die Superklasse eingebunden wird. Dann ist für param und header der eigene Code:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 sub header{ my $self = shift; return $self->{CGI}->header(@_); } sub param{ my $self = shift; return $self->{CGI}->param(@_); } ein Overload. Derselbe Code ist eine Delegation, wenn kein use base 'CGI'; oder our @ISA = qw(CGI); erfolgte. Es funktioniert sowohl der Overload als auch die Delegation mit obenstehenden Code. Mein Fehler heute morgen war, im eigenen Konstruktor mit $class->SUPER::new; auch sämtliche Attribute der Superklasse zu erben, warum das Overload damit schief ging, ist mir allerdings noch nicht restlos klar. Viele Grüße an Alle, Rolf Edit: Die Delegation ist handhabungssicherer, der Programmierer ist gezwungen, die Methode zu definieren, sonst ist sie nicht vorhanden. Werden Methoden geerbt, sind sie vorhanden aber funktionieren nicht erwartungsgemäß wenn sie nicht überschrieben wurden. Last edited: 2011-04-12 22:55:03 +0200 (CEST) |