Um den Funktionsverhau zu entflechten wollte ich jetzt diverse Funktionen in eine Modul auslagern und dieses installieren.
Das Problem ist, dass die Funktionen dann nicht funktionieren (hach welch Wortspiel), sondern eine mysteriöse Fehlermeldung kommt.
Beispiel:
Undefined subroutine &ModPerl::ROOT::ModPerl::Registry::D_3a_Wissensdatenbank_htdocs_olc_neu_projektform1_2epl::l_zweispalten called at D:/Wissensdatenbank/htdocs/olc_neu/projektform1.pl line 31.
Was ich aber sicher sagen kann, ist, dass das von mir geschriebene Modul gefunden wird. Wenn ich es nämlich entferne meckert perl darüber, dass es nicht in @INC ist.
So jetzt noch der Anfang meines Moduls:
- Code: Select all
package OLCprj;
use 5.008008;
use strict;
use warnings;
use DBI; # Generisches Datenbankinterface, benoetigt fuer mysql (Projektdb)
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK);
require Exporter;
our @ISA = qw(Exporter);
# Items to export into callers namespace by default. Note: do not export
# names by default without a very good reason. Use EXPORT_OK instead.
# Do not simply export all your public functions/methods/constants.
# This allows declaration use OLCprj ':all';
# If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
# will save memory.
our %EXPORT_TAGS = ( 'all' => [ qw(
) ] );
our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
our @EXPORT = qw(
);
our $VERSION = '0.01';
print "OLCprj.pm loaded.\n";
sub l_zweispalten # Voll lokalisiert. Referenzen fuer Datenbankhandle gehen wohl. Bibliotheksreif.
{
my $fn=shift;
my $r_pdbh=shift;
my $table=shift;
my $sth=$$r_pdbh->prepare("SELECT * FROM $table") or die "Fehler beim Datenbankzugriff: ".$$r_pdbh->errstr;
$sth->execute()
or die "Fehler beim Datenbankzugriff: ".$sth->errstr;
my @data;
while (@data = $sth->fetchrow_array())
{
$$fn{$data[0]}=$data[1];
}
}
1;
__END__
Was geht hier bitte schön schief?
Schöne Grüße,
Moritz