Data::Dumper wird nur geladen wenn er gebraucht wird

Warum Klassen automatisch laden

Betrachte untenstehende Funktion bzw. Methode: use strict; use warnings; use Data::Dumper; *dumper = sub{ my $self = shift; my $r = shift || $self; $self->header('Content-Type' => 'text/plain; charset=utf-8'); $self->{CONTENT} = Dumper $r; }; So funktioniert es: Eine in der Superklasse definierte Methode AUTOLOAD wird immer dann aufgerufen, wenn eine Methode aufgerufen wird, die im aktuellen Scope nicht definiert ist. Der Name der fehlenden Methode ist in $AUTOLOAD zu finden und in einem solchen Fall wird eine gleichnamige Datei, im Beispiel dumper.pm mit require eingebunden. sub AUTOLOAD{ my $self = shift; my $fname = do{ our $AUTOLOAD =~ /(\w+)$/; $1; }; require "factory/$fname.pm"; return $self->can($fname) ? do{ my $code = $self->can($fname); $self->$code(@_); } : undef; } Sofern die Methode selbst auch namentlich im Scope vorhanden ist, wird sie auch gleich ausgeführt. In der Anwendung wird eine derartige Methode ganz genauso aufgerufen, wie jede andere Methode die wie gewöhnlich im gleichen Namensraum definiert ist.

Datenschutzerklärung: Diese Seite dient rein privaten Zwecken. Auf den für diese Domäne installierten Seiten werden grundsätzlich keine personenbezogenen Daten erhoben. Das Loggen der Zugriffe mit Ihrer Remote Adresse erfolgt beim Provider soweit das technisch erforderlich ist. s​os­@rolf­rost.de.