Matze2K: Hilfe: Schwierigkeiten bei der if-Abfrage !

Hallo @all

Ich habe folgendes Problem: Ich habe ein Perl-Script verfasst
und es ausführlich offline getestet (unter Win98 mit dem
Omnihttpd Professional). Alles funktionierte. Jetzt habe ich
ich das Script auf einen Unix-Server gestellt und zunächst
funktionierte garnichts. Nach einiger Zeit konnte ich jedoch
die Fehlerstelle ausfindig machen. Habe dann auch alles mögliche
ausprobiert - aber es hat nicht funktioniert !
Es ist nun so, dass der Server nicht meldet, es sei ein Fehler
aufgetreten, es wird (so scheint es mir jedenfalls) einfach
eine Zeile im Script ignoriert (s.u.)!

Kurze Erläuterung: in "@db" ist der Inhalt einer Datei RICHTIG (überprüft) -zeilenweise- eingespeist worden. Diese Datei ist für jeden Bereich mit "Labels" versehen. Bsp. in diesem Fall:

<NAME>
Heino Kurt
<ADRESS>
...

-----------------Script----------------------

$gen_pos = 0;
for(@db)
   {
    ++$gen_pos;
    if($_ eq "<NAME>") {$name = $db[$gen_pos];} <-- *Problem !
   }

* die if-Abfrage bekommt keinen wahren Wert (true), obwohl "$_"  sehr wohl einmal den Wert "<NAME>" annimmt (auch überprüft) !

Villeicht könnt Ihr mir ja helfen - weiss echt nicht mehr weiter !

Vielen Dank @all

Matze2K

  1. Hi,

    * die if-Abfrage bekommt keinen wahren Wert (true), obwohl "$_"  sehr wohl einmal den Wert "<NAME>" annimmt (auch überprüft) !

    bist Du sicher, daß $_ nicht vielleicht doch "<NAME>\n" ist?

    perldoc -f chomp

    Cheatah

    1. bist Du sicher, daß $_ nicht vielleicht doch "<NAME>\n" ist?

      Bin ich! Ich hab nämlich jede Dateizeile vor dem schreiben in die Liste - gechopt ! Hab's aber nicht erwähnt. Sei es, wie es sei - es war $_\n\n ! Also 2x chop($_) !

      Vielen Dank für Deine Antwort

      Matze2K

    2. bist Du sicher, daß $_ nicht vielleicht doch "<NAME>\n" ist?

      Bin ich! Ich hab nämlich jede Dateizeile vor dem schreiben in die Liste - gechopt ! Hab's aber nicht erwähnt. Sei es, wie es sei - es war $_\n\n ! Also 2x chop($_) !

      Vielen Dank für Deine Antwort

      Matze2K

      1. Hi,

        Ich hab nämlich jede Dateizeile vor dem schreiben in die Liste - gechopt !

        bitte nicht chop benutzen, wenn Du chomp meinst. chop existiert eigentlich nur noch aus Kompatibilitätsgründen.

        Hab's aber nicht erwähnt. Sei es, wie es sei - es war $_\n\n ! Also 2x chop($_) !

        chomp while (/\n$/);

        oder

        s/[\r\n]+$/;

        (Letzteres ist vermutlich das, was Du eigentlich brauchst.)

        Cheatah

        1. Hallo Cheatah,

          vielen Dank für Deinen Tip. Wenn chop nur noch aus Kompatibilitätsgründen benutzt wird, warum, frag' ich mich, wird
          es dann immer noch in vielen Perl-Beispielen benutzt(z.B. gleich nebenan in SELFHTML) ???

          Freue mich auf eine Antwort

          Matze2K

          1. Hi,

            vielen Dank für Deinen Tip. Wenn chop nur noch aus Kompatibilitätsgründen benutzt wird, warum, frag' ich mich, wird
            es dann immer noch in vielen Perl-Beispielen benutzt(z.B. gleich nebenan in SELFHTML) ???

            meine Meinung zum Perl-Kapitel in SelfHTML kannst Du im Archiv nachlesen. Die Verwendung von chop statt chomp ist einer der weniger wesentlichen Gründe.

            Cheatah