Thread Fehler in meinem ersten Perl Script (15 answers)
Opened by Kingpin90 at 2008-08-10 21:49

Kingpin90
 2008-08-10 21:49
#113291 #113291
User since
2008-08-10
7 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe mich in den letzten Tagen etwas mit Perl beschäftigt und heute mein erstes Script zusammen gebastelt.
Leider sind in dem Script noch einige Fehler und demzufolge startet es nicht.

Wäre echt nett wenn mal jemand dürber gucken würde und mir sagt, wo ich noch nachbessern muss.

Vielen Dank in vorraus.

Kingpin90

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
#! /usr/bin/perl

use strict;
use warnings;
use DBI;

my $user = 'username';
my $pass = 'userpasswort';
my $db = 'datenbankname';
my $host = 'localhost';
my $driver = “DBI:mysql:$db:$host“;
my $dbh = DBI->connect($driver,$user,$pass) or die $DBI::errstr;

my $quelle = 
my $ziel = 

my $aktuell = 1;

#########################################
#### Zieltabelle erstellen           ####
#########################################

print "Erstelle Zieltabelle...";

my $erstellen = CREATE TABLE $ziel (
                `ANREDE` varchar(10) default NULL,
                `VORNAME` varchar(255) default NULL,
                `NAME` varchar(255) default NULL,
                `ZUSATZ` varchar(255) default NULL,
                `STRASSE` varchar(50) default NULL,
                `HAUSNR` varchar(10) default NULL,
                `STRASSE HAUSNR` varchar(10) default NULL,
                `ORTSTEIL` varchar(50) default NULL,
                `D` varchar(1) default NULL,
                `PLZ` varchar(5) default NULL,
                `ORT` varchar(50) default NULL,
                `TELZUSATZ` varchar(10) default NULL,
                `VORWAHL` varchar(10) default NULL,
                `TELEFON` varchar(30) default NULL,
                `VORWAHL TELEFON` varchar(30) default NULL
                ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

my $sth = $dbh->prepare($erstellen) or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;

print "OK \n";

#########################################
#### Anzahl der Quelldaten           ####
#########################################

print "Stelle Anzahl der Quelldaten fest...";

my $quelldaten = 'SELECT COUNT * FROM $quelle';

my $sth = $dbh->prepare($guelldaten) or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
$gesamt=$sth->fetchrow_array;

print "OK \n";

#########################################
#### Quelldaten laden                ####
#########################################

print "Lade Quelldaten aus Tabelle...";

my $quelldaten = 'SELECT * FROM $quelle';

my $sth = $dbh->prepare($guelldaten) or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;
$zeiger = $dbh->selectall_arrayref($quelldaten);

print "OK \n";

#########################################
#### Beginn der Datenverarbeitung    ####
#########################################

print "Beginne mit der Verarbeitung der Daten...";
print "OK \n";

foreach $felder(@$zeiger)
{
    @ergebnis=@$felder;

my $abfrage =   INSERT INTO $ziel
                SELECT
                $quelle.ANREDE,
                $quelle.VORNAME,
                $quelle.NAME,
                $quelle.ZUSATZ,
                $quelle.STRASSE,
                $quelle.HAUSNR,
                $quelle.`STRASSE HAUSNR`,
                $quelle.ORTSTEIL,
                $quelle.D,
                $quelle.PLZ,
                $quelle.ORT,
                $quelle.TELZUSATZ,
                $quelle.VORWAHL,
                $quelle.TELEFON,
                $quelle.`VORWAHL TELEFON`,
                FROM
                $quelle
                WHERE
                $quelle.PLZ = $ergebnis[1] AND
                $quelle.STRASSE = $ergebnis[2] AND
                $quelle.HAUSNR = $ergebnis[3];

my $sth = $dbh->prepare($abfrage) or die $DBI::errstr;
$sth->execute() or die $DBI::errstr;

my $aktuell = $aktuell +1;

print "Bearbeite Datensatz $aktuell von $gesamt \n";
}

View full thread Fehler in meinem ersten Perl Script