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
3193 articles
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