Ich habe ein Basisobjekt namens RuleObject und ein Objekt, das von dem namens RuleObjectString erbt. Ich habe eine neue Methode in RuleObjectString, die ich in meinem Code aufrufen möchte, der dieses Objekt verwendet. Aber ich bekomme den Fehler. 'Die Objektmethode "compare" kann nicht über das Paket "RuleObject" in der Zeile ./testobject.pl der Zeile 10 gefunden werden.' Aber ich erstelle kein RuleObject. Ich erstelle einen RuleObjectString. Was mache ich hier falsch?
testobject.pl
%Vor%RuleObject.pm
%Vor%RuleObjectString.pm
%Vor% Ich denke, Jmcneirney ist auf dem richtigen Weg. In Ihrem RuleObject
-Konstruktor sagen Sie
ist das gleiche wie
%Vor%oder
%Vor% Aber was Sie wollen, ist, dass das Objekt als RuleObjectString
gesegnet wird. Was Sie also tun wollen, ist
Jetzt
%Vor% ruft den gleichen Konstruktor auf, aber das vom ersten Aufruf zurückgegebene Objekt wird als RuleObject
und das zweite Objekt als RuleObjectString
gesegnet.
Versuchen Sie, das Objekt abzulegen und zu sehen, was es ist.
%Vor%Es wird ein RuleObject sein.
Sie müssen möglicherweise eine neue () in RuleObjectString definieren und lass es Super :: new () aufrufen.