Thread Module, Variablen und Probleme (8 answers)
Opened by Trunkenstein at 2012-04-10 15:31

Trunkenstein
 2012-04-10 15:31
#157363 #157363
User since
2012-02-15
4 Artikel
BenutzerIn
[default_avatar]
Hallo Leute,

ich versuche ein Script zu erstellen was auf verschiedene Module zum Login auf unterschiedliche Datenbanken zugreifen soll (MySQL/Oracle).

Der Login soll per Call an eine Sub aus dem Modul geschehen welche mir dann den Database Handler und die Tabelle (in Form eines Array Wertes) zurück gibt (Wobei beides in der Datei mit den Logindaten hinterlegt ist welche vom Modul eingelesen wird)

Irgendwie hänge ich aber an der Variablen Deklaration zwischen dem Perl Skript und Modul :/

hier einmal der (noch) einfache Quelltext:
Perl Skript
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#! /opt/bin/perl
use strict;
use lib "/export/home/scripts/NetAct";
use loginmodules::NAnorth;

login();

my $sth = $dbh->prepare("SELECT * FROM $values[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();


Login Module
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package NAnorth;
use DBI();

use Exporter;
use vars qw($VERSION @ISA @EXPORT @EXPORT_OK @values $dbh);
$VERSION = 1.00;
@ISA = qw(Exporter);
@EXPORT = (login);



sub login {
my $loginfile = '/export/home/scripts/NetAct/logindata/nan_login.txt';
open (DAT, $loginfile);
our @values = split (';',<DAT>); #(0 ip, 1 port, 2 user, 3 sesam, 4 database, 5 table)
print Dumper(\@values); #Still debugging.....
our $dbh = DBI->connect("DBI:mysql:database=$values[4];host=$values[0]","$values[2]", "$values[3]",{'RaiseError' => 1});
print ("No Error? PERFECT, Database connected\n");
}
1;


die/das Module (NAnorth.pm liegt im Ordner /export/home/scripts/NetAct/loginmodules )

ich habe auch schon nach Anleitungen zur genauen Moduldeklaration gesucht, habe es leider nicht soo wirklich verstanden (wie man vielleicht erkennt).

Ich muss eigentlich nur die $dbh und @values Variable aus dem Modul zurück in mein Skript übergeben, kriege es aber einfach nicht hin.

View full thread Module, Variablen und Probleme