Thread @ISA
(4 answers)
Opened by kristian at 2011-03-23 22:08
noch eine kleine Ergänzung zur Vererbung mit @ISA.
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 use strict; use CGI; our @ISA = qw(CGI); use Data::Dump qw(dump); use warnings; # main Konstruktor sub new{ my $class = shift; my $self = {}; $self = $class->SUPER::new; # Attribute erben return bless $self, $class; } my $q = main->new; printf "%s%s", $q->header(-charset=>'UTF-8'), dump $q; In Zeile 3 wird die Superklasse genannt: CGI main::new() schafft somit ein Objekt, was von CGI erben soll. Die Methoden CGI::methods werden ohne Weiteres geerbt. Zum Erben der Attribute gibt es einen kleinen Trick: Zeile 11: Ruft den Konstruktor der Superklasse. Teste dump $u mit oder ohne Zeile 11. |