andy: foreach nach if bedienung

hallo,

ich habe ja folgendes code,
$text = "bla bla bla";
foreach(@daten){
if ($text =~ /$_/gi){
print "gefunden";
}
else{
print "nicht gefunden\n";
}

wo weit so gut. nun möchte ich die if bedienung prüfen bevor der foreach schleife, wie schreibt man so was ? z.b:

if (true){
...
}
elsif ($text =~ /$_/gi)foreach(@data){   // hier ist das Problem

print "gefunden\n"
}
else{
print "nicht gefunden\n";
}

danke für eure hilfe

gruss, Andy
...
...

  1. Moin,

    ich hab zwar dein Problem nicht genau verstanden, aber grundsätzlich gilt doch:

    if (bedingung){
     //Block wird ausgeführt, wenn bedingung == true
    }
    else{
     //Block wird ausgeführt, wenn bedingung == false
    }

    Was du nun in deinem Block hast, ist dann ja egal.
    Und wenn es ein foreach sein soll, dann sehe ich das Problem nicht.
    Kenn mich allerdings mit Perl nicht aus, wüsste aber nichts was dagegen sprechen würde...

    MfG,
      Juan

    1. Moin,

      ich hab zwar dein Problem nicht genau verstanden, aber grundsätzlich gilt doch:

      if (bedingung){
      //Block wird ausgeführt, wenn bedingung == true
      }
      else{
      //Block wird ausgeführt, wenn bedingung == false
      }

      ja das ist mir schon klar
      aber das Problem ist hier:

      elsif ($text =~ /$data/gi)foreach $data(@daten){

      die variable $data die im regex steht ist nur bekannt wenn der voreach schleife läuft, vorher nicht. also das was ich brauche ist die zu prüfen
      elsif ($text =~ /$data/gi) und zwar für für jedes $data in array @daten.

      ich hoffe ich war etwas verständlicher.

      gruss, andy

      Was du nun in deinem Block hast, ist dann ja egal.

      1. hi,

        aber das Problem ist hier:

        elsif ($text =~ /$data/gi)foreach $data(@daten){

        die variable $data die im regex steht ist nur bekannt wenn der voreach schleife läuft, vorher nicht.

        Dann ist der Gedanke, sie schon vorher zu verwenden doch wohl reichlich absurd.

        also das was ich brauche ist die zu prüfen
        elsif ($text =~ /$data/gi) und zwar für für jedes $data in array @daten.

        Meinst du also

        if(Bedingung 1) {...}
        else {
           foreach() {
              if(bedingung2 mit bezug auf einzelnen array-wert) {...}
           }
        }

        ?

        ich hoffe ich war etwas verständlicher.

        Noch nicht so wirklich.
        Etwas vollständigere Sätze als sowas wie

        also das was ich brauche ist die zu prüfen

        könnten vielleicht helfen.

        gruß,
        wahsaga

        --
        /voodoo.css:
        #GeorgeWBush { position:absolute; bottom:-6ft; }