Thread Von CGI.pm Methods erben
(25 answers)
Opened by rosti at 2011-04-12 10:35
Ich kann mich meinen Vorrednern nur anschließen.
Dein Mischmasch aus Vererbung und Delegation erscheint mir als sicherer Weg ins Verderben. Und ich habe auch nicht ganz kapiert, warum Du das unbedingt machen willst Mein Vorschlag: Entscheide Dich für einen sauberen Weg. Entweder (A) Vererbung $self ist dann ein CGI-Objekt und enthält alle CGI-Interna dort, wo es CGI erwartet. Wenn Du Befürchtungen hast, dass Felder, die Du in Deiner erweiterten Klasse anlegen willst, mit Feldern kollidieren, speichere Deine Erweiterungen nicht direkt unter $self sondern $self->{MyPackage}. oder (B) Delegation Spendier Deiner Klasse ein CGI-Objekt unter $self->{CGI}, aber lasse sie nicht von CGI erben. Wenn Du Wert darauf legst, dass alle von CGI zur Verfügung gestellten Methoden auch mit Deiner neuen Klasse funktionieren (sofern Du sie nicht überschreibst), kannst Du das recht einfach mit einer AUTOLOAD Funktion erreichen, die die Methodenaufrufe an $self->{CGI} delegiert. |