Andi: eq geht nicht!!!!

Hallo ihr!

Also ich weiß echt nicht was ich falsch mach, aber vielleicht könnt ihr mir ja weiterhelfen. Ganz kurz ich habe eine foreach-Schleife die ein Array durchsucht, doch es findet den Eitrag nicht obwohl er vorhanden ist. Sieht quasi so aus:

foreach(@data) {
 if($_ eq "FREIZEITEN") {
  $check = 1;
  next;
  }
        }

Ich verstehs echt nicht, weil der Eintrag FREIZEITEN doch in @data steht.

Bitte helft mir weiter!! Danke schon jetzt mal.

Adee

  1. Hallo!
    Gib doch in der foreach-Schleife mal den aktuellen Wert aus. Und zwar mit Begrenzungszeichen. Also in etwa so:
    foreach(@data) {
     print ("*$_*");

    Oft schleichen sich Leerzeichen ein. So steht dann z.B. "FREIZEITEN " da, was natürlich nicht gleich "FREIZEITEN" ist.

    1. Hi

      Danke aber dass hab ich schon probiert daran liegts anscheinend
      nicht!!!

  2. Hallo ihr!

    Hallo Du! :)

    foreach(@data) {
    if($_ eq "FREIZEITEN") {
      $check = 1;
      next;
      }

    »»}

    Ich verstehs echt nicht, weil der Eintrag FREIZEITEN doch in @data steht.

    Und wenn du mal ein s/[\r\n]//g; in die erste Zeile der Schleife schreibst? Nur falls du das aus einer Datei ausließt, und da noch Zeilenumbrüche drinstehen sollten (sei es Win, Apple oder *nix-Format).

    Ansonsten, vielleicht statt eines "eq" ein if($_=~/FREIZEITEN/)...

  3. Hi

    also:

    @data = qw(Tore Betten Freiheiten FREIZEITEN);
    my $check=2;
    foreach(@data) {
      if($_ eq "FREIZEITEN") {
      $check = 1;
      }
    }
    print $check;

    Läuft bei mir - sprich: "$check ist gleich 1" Daraus folgt: $_ ist nie, niemals "FREIZEITEN" ;-)
    Prüf' das noch einmal.

    Bye
    Timothy