sub new { my ($caller, %arg) = @_; # $caller <- Paket oder Objekt, %arg <- restliche Argumente my $caller_is_obj = ref($caller); # Aufruf als Objekt- oder als Klassenmethode? my $class = $caller_is_obj || $caller; # Egal ob der Aufruf als Objekt- oder Klassenmethode erfolgte, $class <- Klassenname no strict "refs"; # Erlaube Zugriff auf Paketvariablen der Klasse über symbolische Referenzen my $self = bless [\%{"${class}::FIELDS"}], $class; # Erzeuge eine Arrayreferenz, die als erstes Element eine Referenz auf die Hashvariable FIELDS des Klassenpaketes enthält, und verwandle sie in eine Instanz der Klasse. ... }