Johnny B.: Eigenes Module

Beitrag lesen

Hallo Otto,

Die bisherigen Lösungsansätze die ich habe gefallen mir alle nicht so richtig. Was ich im Grunde möchte ist gemeinsame Funktionalität in gemeinsamen Dateien auslagern. Soweit ich das bei Perl verstanden habe, brauche ich dann Module.

--- ich habe folgenden Lösungsansatz gewählt:
im cgi-bin befinden sich a.pm, b.pm und Routines.pm.

a.pm
--------------------------------
#!/usr/bin/perl -w
use strict;
use Routines  qw(
                    erhoehe_zaehler
                    debug
                );

b.pm
--------------------------------
#!/usr/bin/perl -w
use strict;
use Routines  qw(
                    aendere_daten
                    lade_daten
                    debug
                );

Routines.pm
---------------------------------
package Routines;
require Exporter;
@ISA        = qw(   Exporter
              );
@EXPORT     = qw(
                    aendere_daten
                    erhoehe_zaehler
                    debug
                    lade_daten
              );
@EXPORT_OK  = @EXPORT;

use strict;
sub erhoehe_zaehler {
    my ( $zaehler, $wert ) = @_;
    ...usw...
}

Alle ausgelagerten Funktionalitäten befinden sich als Subroutinen in Routines.pm. Je nachdem, welche ich benötige, binde ich sie am Anfang des Scripts ein. In @EXPORT müssen alle Subroutinen stehen, damit sie exportiert werden können. Ich finde diese Lösung sehr übersichtlich und deutlich einfacher, als _richtige_ Module zu bauen und zu installieren. Ich habe zusätzlich noch Templates.pm als Sammeldatei für Vorlagen und Variablen, die ich so konzentriert an einer Stelle für das ganze Projekt zusammen habe und entsprechend des Bedarfs in den Scripten einbinde.

Besten Gruß
JOhnnY