Siechfred: Nutzung von $Variable nach IF Anweisung

Beitrag lesen

Irgendwo ist der Wurm drin und ich werd langsam Irre.

Dann gehe Schritt für Schritt vor:

1. Was steht im errorlog des Servers?

2. use strict;

3. Versieh Deine if-Abfragen mit einem else-Zweig:

if ($Daten{"NAME"}) {  
  $tNAME = $Daten{"NAME"};  
  $tNAME =~ m/^\((.*?)\.(.*)\.(.*)\)$/;  
  $TabNAME = $3;  
  print "\nTablename: ",$TabNAME,"\n";  
}  
else {  
  print 'Error: $Daten{NAME} is not defined';  
}

So erkennst Du Fehler bereits hier und baust in Dein SQL-Statement keinen Müll ein.

4. Beachte den Gültigkeitsbereich von mit my deklarierten Variablen:

my $outer_var;  
if(1) {  
  $outer_var = 666;  
  my $inner_var = 42;  
}  
print $outer_var;  # 666  
print $inner_var;  # Scriptabbruch

Siehe hierzu auch Coping with scoping (deutsche Übersetzung)

5. Frage Fehler ab, wo immer es möglich ist und gib diese aus.

Lies hierzu: Dokumentation zu Win32::ODBC

Ohne dass Du Deinen Code vernünftig debuggst, wird das hier nur ein wildes Rumgerate.

Siechfred

--
Obacht, hinter jedem noch so kleinen Busch könnte ein Indianer sitzen!