Thread Von CGI.pm Methods erben (25 answers)
Opened by rosti at 2011-04-12 10:35

rosti
 2011-04-12 22:46
#147661 #147661
User since
2011-03-19
3197 Artikel
BenutzerIn
[Homepage]
user image
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)

View full thread Von CGI.pm Methods erben