So, ich habe meinen Code nun noch etwas umgestellt aber habe jetzt neue Probleme, ich blicke mit der Variablendeklaration zwischen Modul und Skript irgendwie noch nicht ganz durch :/
Aktuell erhalte ich die Fehlermeldung:
QuoteUndefined subroutine &main::comein called at etperf.pl line 11.
Skript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#! /opt/bin/perl
use strict;
use warnings;
use lib "/export/home/scripts/NetAct";
use loginmodules::NAnorth qw(&comein @comeincredentials $dbh);
our ($dbh, @comeincredentials);
&comein();
#$dbh = loginmodules::NAnorth::comein($dbh); FUNKTIONIERT NICHT!
#@comeincredentials = loginmodules::NAnorth::comein(@comeincredentials); FUNKTIONIERT NICHT!
my $sth = $dbh->prepare("SELECT * FROM $comeincredentials[5] WHERE rownum <11");
$sth->execute();
while (my $ref = $sth->fetchrow_hashref()) {
print "Found a row: id = $ref->{'BSCID'}, name = $ref->{'name'}\n";
}
$sth->finish();
# Disconnect from the database.
$dbh->disconnect();
Modul
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package NAnorth;
use strict;
use warnings;
use DBI();
require Exporter;
our (@ISA, @EXPORT, @EXPORT_OK, @comeincredentials, $dbh);
@ISA = qw(Exporter);
@EXPORT_OK = qw(&comein @comeincredentials $dbh);
sub comein {
my $loginfile = '/export/home/scripts/NetAct/logindata/nan_login.txt';
open (DAT, $loginfile);
@comeincredentials = split (';',<DAT>); #(0 ip, 1 port, 2 user, 3 sesam, 4 database, 5 table)
print Dumper(\@comeincredentials); #Still debugging.....
$dbh = DBI->connect("DBI:mysql:database=$comeincredentials[4];host=$comeincredentials[0]","$comeincredentials[2]", "$comeincredentials[3]",{'RaiseError' => 1});
print ("No Error? PERFECT, Database connected\n");
}
1;