Bernhard Peissl: Ärgerliches if-statement

Beitrag lesen

Hallo!

Jetzt, wo sich mein Projekt dem Ende zuneigt(ihr habt also bald wieder Ruhe von mir), scheinen Die Errors nur so aus dem Boden zu schiessen: Hier was ganz blödes, und ich komm einfach nicht dahinter warums nicht funktioniert:

my $ansprechpartner_text = "";
[...]
sub getStaff {
open (GET_STAFF, "mitarbeiter.info") die "can't open mitarbeiter.info: $!\n";
while ($line=<GET_STAFF>) {
  chomp($line);
  ($staff_id, $staff_name, $staff_aufgaben, $staff_tel, $staff_fax, $staff_email, $dummy) = split(/::/,$line);

if ($staff_id eq $lva_ansprechpartner1 $staff_id eq $lva_ansprechpartner1) {
   $ansprechpartner_text .= "<p>\n".$staff_name." <!--".$staff_id."-->\n";
   $ansprechpartner_text .= "<br>Tel: +43/1/815 08 50 DW ".$staff_tel."\n";
   if ($staff_fax) { $ansprechpartner_text .= "<br>Fax: +43/1/815 08 50 DW ".$staff_fax."\n";}
   $ansprechpartner_text .= "<br>E-mail: <a href='mailto:".$staff_email."'>".$staff_email."</a></p>";
  }
  close (GET_STAFF) die "can't close mitarbeiter.info: $!\n";
}

$lva_ansprechparnter1 und 2 werden als Parameter (korrekt) übergeben. Deren Inhalt, und der von $staff_id sind Strings der Form "staff19", "staff13", ...

Wenn ich die Funktion aber aufrufe, und 2 Ansprechpartner an das Script übergeben wurden, dann enthält "$ansprechpartner_text" trotzdem nur den Text für $lva_ansprechpartner2. Der 1.Ansprechpartner wird einfach in den Wind geschossen :-(

Ich sehe aber keinen Fehler! Und im Script wird auch an keiner anderen Stelle etwas an den Variablen $lva_ansprechpartner1/2 und auch nicht an $ansprechpartner_text geändert! Die drei kommen nur in dieser Funktion vor - also muss der Hund irgendwo da begraben sein!

Vielleicht riecht ja einer von euch, wo's hier stinkt ;-)

liebe Grüsse
Bernhard