Ich habe eine Klasse, die eine neue Methode hat und dieses Objekt verwendet, um Methode X aufzurufen. Wenn ich X aus dem Objekt aufrufe, ist der erste Wert der Parameter $self und der Rest sind die Werte, die ich gesendet habe. Wenn ich nun dieselbe Methode von einer anderen Methode des Objekts aus aufrufe, ist der erste Wert nicht mehr $self, sondern es werden nur noch die Werte gesendet. Wie kann ich diese Situation lösen?
Beispiel:
my $p = TEST->new;
$p->mymethod(1,2,3); # @_ = 'self, 1, 2, 3'
aber wenn in 'mymethod' von einer anderen Methode aufgerufen wird:
sub anothermethod{
my ($self, $a) = @_;
mymethod(1,2,3); # @_ = '1,2,3'
}
Wie schreibe ich "mymethod" so, dass es beide Situationen behandelt? Oder mache ich etwas grundlegend falsch?