Noch besser ist es,
- die Datenbank vor der Schleife zu oeffnen,
- Fehler beim Oeffnen abzufangen und
- gleich mit Platzhaltern zu arbeiten.
...
my $dbh = DBI->connect("dbi:mSQL:T1:fabian:3306", "password", "fabian")
or die "Kann Datenbank nicht oeffnen: " . DBI->errstr();
while (defined($getline=<FH>)) {
my @line = split(/ /, $getline, 8);
my $statement = 'insert into fabian (month1, day1, time1, ip, port, month2, day2, time2, message) values (?,?,?,?,?,?,?,?,?)';
my $sth=$dbh->prepare($statement);
$sth->execute(@lines)
or warn "Fehler beim Schreiben in Datenbank: " . $sth->errstr();
}
$dbh->disconnect();
...