Thread Fehler in meinem ersten Perl Script
(15 answers)
Opened by Kingpin90 at 2008-08-10 21:49
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"; } |