Thread Ist Module::Load unsicher
(37 answers)
Opened by Max_Perlbeginner at 2017-09-06 14:28
Interessant ist hier die Fabrikmethode in Verbindung mit Perls AUTOLOAD. Die Factorymethod ist ein Verfahren das beschreibt wie Instanzen nicht verwandter Klassen über eine Methode der eigenen Klasse erzeugt werden. Beispiel (ohne AUTOLOAD):
Code (perl): (dl
)
1 2 3 4 require "factory/param.pm"; my $m = bless{}; $m->param(); print Dumper $m; Der Dumper zeigt die eingebaute Instanz: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 $VAR1 = bless( { 'CGI' => bless( { 'CONTENT_LENGTH' => 0, 'CONTENT_TYPE' => 'application/x-www-form-urlencoded', 'CONTENT_TYPE_ORIGIN' => 'application/x-www-form-urlencoded', 'QUERY_STRING' => '', 'STDIN' => bless( \*Symbol::GEN0, 'IO::String' ), 'eav' => {}, 'json' => {}, 'param' => {}, 'rawdata' => '' }, 'xCGI' ) }, 'main' ); Wobei xCGI eine Klasse ist die in der ausgelagerten Funktion ganz normal per use eingebunden wird. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 package UNIVERSAL; use xCGI; sub param{ my $self = shift; $self->{CGI} = xCGI->new() unless defined $self->{CGI}; return $self->{CGI}->param(@_); } 1; |