Thread Ist Module::Load unsicher (37 answers)
Opened by Max_Perlbeginner at 2017-09-06 14:28

rosti
 2017-09-07 09:58
#187367 #187367
User since
2011-03-19
3472 Artikel
BenutzerIn
[Homepage]
user image
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;

View full thread Ist Module::Load unsicher