Funktio wird in Schleife nicht ausgeführt.
Paule
- perl
Hallo,
bei nachfolgendem Code habe ich das Problem auf das wesentliche reduziert.
Das Problem ist, dass ich gerne die Funktion do2 mit einem Parameter aufrufen möchte.
Beim nachfolgendem code, habe ich das Problem, dass ich diese subroutine nicht innerhalb eines while aufrufen kann.
Auch gibt der print Befehl nichts aus.
Hat jemand einen Tip für mich?
Aus meinem Perl Buch wurde ich leider nicht schlau.
Kann sein, dass beim zusammenkopieren des Scriptes einzelne Deklarationen abhanden kamen.
#!/usr/bin/perl
use DBI;
use Config::IniFiles;
use Getopt::Std;
use strict;
sub do2
{
print "PARAMETER: $_[0]\n";
}
my $cfg = new Config::IniFiles( -file => "./xyz.ini" );
my $dbh = DBI->connect("DBI:mysql:" . $cfg->val('dbsettings','database'), $cfg->val('dbsettings','username'),$cfg->val('dbsettings','password') ); die "Keine DB Verbindung möglich: $DBI::errstr\n" unless (defined $dbh );
my $sth = $dbh->prepare("Select * from Test");
$sth->execute;
my @Array;
while ((@Array) = $sth->fetchrow_array)
{
do2("Test1");
print "Hier sollte was passieren, tut sich aber nix...\n";
$text1 =<<"EOF";
$text1\zone "$Array[1]" \n
EOF
}
print "$text1";
do2("Hallo");
Hi,
vermutlich ist das Array einfach leer, bzw. die Bedingung formal falsch und die Schleife wird deshalb nicht durchlaufen...
MfG
Danny
Hi,
vermutlich ist das Array einfach leer, bzw. die Bedingung formal falsch und die Schleife wird deshalb nicht durchlaufen...
MfG
Danny
Hallo,
nein das kann ich ausschliessen die Inhalte werden aus der Datenbnak gelesen und die Schleife durchlaufen.
Das heisst, print "$text1"; liefert definitiv ein Ergebnis am Ende.
Problem behoben.
Es lag an der eigenen Blindheit.
Beim Script wurden einige Daten ausgegeben, und ich habe leider die Ausgaben an einer anderen Stelle erwartet.
Es lag also an meinen Trüben Augen so spät in der Nacht.