Hallo ich habe bei mir die CPAN Module CGI (4.07) und DBD-CSV (0.44) aktualisiert. Nun habe ich ein Problem, das meine CGI-Script nicht mehr funktionieren. Der Code ist nur ein Beispielcode und ich dachte da kann nicht viel falsch sein.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use strict;
use CGI;
use DBI;
my $DBDIR='..\CSV-DB';
my $DBOmni = 'foo';
my $dbh = DBI->connect ("dbi:CSV:", undef, undef, {
f_dir => $DBDIR,
f_ext => ".csv/r",
f_encoding => "utf8",
csv_sep_char => ";",
RaiseError => 1,
}) or die "Cannot connect: $DBI::errstr";
my $sth = $dbh->prepare ("select * from $DBOmni");
$sth->execute();
my (@row);
while ( @row = $sth->fetchrow_array ) {
print "$row[2] :: $row[0] :: $row[1] :: $row[3]\n";
}
$dbh->disconnect;
Da kommt " No such file or directory at C:/Perl/site/lib/DBI/DBD/SqlEngine.pm line 1503."
Wenn ich allerdings
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
use strict;
use DBI;
use CGI;
my $DBDIR='..\CSV-DB';
my $DBOmni = 'foo';
my $dbh = DBI->connect ("dbi:CSV:", undef, undef, {
f_dir => $DBDIR,
f_ext => ".csv/r",
f_encoding => "utf8",
csv_sep_char => ";",
RaiseError => 1,
}) or die "Cannot connect: $DBI::errstr";
my $sth = $dbh->prepare ("select * from $DBOmni");
$sth->execute();
my (@row);
while ( @row = $sth->fetchrow_array ) {
print "$row[2] :: $row[0] :: $row[1] :: $row[3]\n";
}
$dbh->disconnect;
Also erst "use DBI;" und danach "use CGI;" benutze funktioniert mein Script. Irgendjemand einen Tipp, was das soll? Hatte mir noch nie Gedanken über die Reihenfolge von zu ladenden Modulen gemacht.