Paule: Funktio wird in Schleife nicht ausgeführt.

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

Includes Perl Modules

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");

  1. Hi,

    vermutlich ist das Array einfach leer, bzw. die Bedingung formal falsch und die Schleife wird deshalb nicht durchlaufen...

    MfG
    Danny

    1. 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.

  2. 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.