Dein Beispiel in Ehren aber es zeigt ja keinen Vorteil. Und alles in englisch auzugeben ist auch kein Vorteil von OOP.
Um mal einen Schnitt zu tun: OOP ist weder ein Dogma noch die Lehre der Entstehung der Arten. Vielmehr ist OOP eine praktische Angelegenheit. Und eigentlich nur eine Art und Weise wie man seinen Code zweckmäßig organisiert.
Wesentlich an OOP ist, daß Instanzen von Klassen erstellt werden, die deswegen Instanzen sind weil sie wissen zu welcher Klasse sie gehören und damit ihren Namespace kennen sowie die Methoden die sie aufrufen dürfen. Dafür tragen Instanzen Eigenschaften mit sich rum die sehr komplex sein können.
OOP ist schon das da:
my $obj = {
name => 'Huber',
vname => 'Wastl'
};
sub showname{
my $self = shift;
print $self->{name};
}
showname($obj);
Aber richtig interessant wirds wenn das Objekt den Namen seiner Klasse kennt:
bless $obj;
$obj->showname();
Womit man zum Aufruf der Methoden den -> Operator nehmen kann, der nichts weiter tut als die aufrufende Instanz als 1. Argument zu übergeben. In c++, so habe ich das auch mal gelernt, wird eine Instanz mit new()
erstellt. Ebenso erstellt aber auch throw()
eine neue Instanz. Nämlich der Klasse die da übergeben wird. Allein aus diesem Sachverhalt jedoch ergibt sich kein Vorteil in Sachen EXns.
MfG