Vererbung mit Perl ist ganz einfach

Basisklasse sei Package main und die Subklasse erbt alle Methoden

Wir wollen nun einmal schauen, wie einfach die Vererbung (Inherit) in Perl ist. Dazu erstellen wir zwei Dateien siehe untenstehend:

Datei Nummer.pm

package Nummer;

use base main;
use strict;
use warnings;

1;

Datei nr.pl

#!/usr/bin/perl

require Nummer;
use strict;
use warnings;

sub lfdnr{
    my $self = shift;
    return ++$self->{nr};
}

sub new{
    my $class = shift;
    my $nr    = shift || 0;
    return bless{ nr => $nr }, $class;
}

my $n = Nummer->new;
print $n->lfdnr;

Erläuterungen: Wird die Datei nr.pl über den Perl-Interpreter ausgeführt, sehen wir die print-Ausgabe ewartungsgemäß. In package Nummer; wird die Superklasse mittels use base main; deklariert. Somit werden beide Methoden, zum einen die Klassenmethode new() und zum Anderen die Objektmethode lfdnr() von der Basisklasse geerbt.

Das Prinzip ist also ganz einfach: Ist eine Methode in der Subklasse definiert, wird diese ausgeführt (Overload, Überschreibung). Ist sie das nicht, wird diejenige Methode ausgeführt, welche in der Superklasse definiert ist. Auf diese Art und Weise funktioniert auch ein Interface insofern, als dass bei einem vorgegebenen Programmablauf die Funktionen einfach nur aufgerufen werden.


Anbieter: nmq​rstx-18­@yahoo.de, die Seite verwendet funktionsbedingt einen Session-Cookie und ist Bestandteil meines nach modernen Aspekten in Perl entwickelten Frameworks.