@Perler - Schleife in ner Abfrage einer Bedingungskette möglich? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Freitag, 1.Juli.2005, 19:22.
    @Perler - Schleife in ner Abfrage einer Bedingungskette möglich?

      wahrscheinlich etwas blöd ausgedrückt - habe folgendes Problem:
      Es soll ein Anweisungsblock nur ausgeführt werden, wenn ein Wert in einer Liste von Variablen einen Wert hat, ansonsten soll der Anweisungsblock übersprungen werden.
      Da aber die Menge der zu überprüfenden Elementen erst zur Laufzeit generiert wird, meine Frage, ob es irgendwie geht, in ein if() ein foreach mit oder-Verknüpfung eizubauen; also im Klartext:
      wenn eine Variable mit Namen aus der Liste @listenname einen Wert besitzt, dann tue etwas.

      Klar, man könnte ein Flag in ner foreach-Schleife bei gefundenem Wert und anschließendem Verlassen der Schleife setzen - aber vielleicht kann man ja den Umweg sparen?

      ---schnipp
      @l_vnamen = ("var1","var2","var3","var4","var5");
      foreach my $t($l_vnamen){
         if ($$t > 0){
         $flag = 1;
         last;
         }
      }
      if ($flag > 0){
      
      ...tue was...
      }
      ---schnapp
      Danke für Tipp


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Freitag, 1.Juli.2005, 19:22.
    @Perler - Schleife in ner Abfrage einer Bedingungskette möglich?

      wahrscheinlich etwas blöd ausgedrückt - habe folgendes Problem:
      Es soll ein Anweisungsblock nur ausgeführt werden, wenn ein Wert in einer Liste von Variablen einen Wert hat, ansonsten soll der Anweisungsblock übersprungen werden.
      Da aber die Menge der zu überprüfenden Elementen erst zur Laufzeit generiert wird, meine Frage, ob es irgendwie geht, in ein if() ein foreach mit oder-Verknüpfung eizubauen; also im Klartext:
      wenn eine Variable mit Namen aus der Liste @listenname einen Wert besitzt, dann tue etwas.

      Klar, man könnte ein Flag in ner foreach-Schleife bei gefundenem Wert und anschließendem Verlassen der Schleife setzen - aber vielleicht kann man ja den Umweg sparen?

      ---schnipp
      @l_vnamen = ("var1","var2","var3","var4","var5");
      foreach my $t($l_vnamen){
         if ($$t > 0){
         $flag = 1;
         last;
         }
      }
      if ($flag > 0){
      
      ...tue was...
      }
      ---schnapp
      Danke für Tipp

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Freitag, 1.Juli.2005, 21:50.
    Re: @Perler - Schleife in ner Abfrage einer Bedingungskette möglich?

      Ich "hashe" bei solchen sachen einfach das array.
      Oder bzw erstelle ich das sofort als hash (sofern es auf die reihenfolge nicht ankommt)
      z.B.

      @l_vnamen = ("var1","Dieter","var3","var4","var5");
      my %t = map {$_ => 1} @l_vnamen;
      if (exists $t{"Dieter"}){
      
      ...
      }

      Das geht bestimmt auch in einer zeile (ohne %t) aber bin nicht so der Schachtelexperte (frag mal cristoph ;))

      Ob das jetzt aber effektiv als ne schleife ist weiss ich nicht (wenn man es nicht gleich als hash erstellen kann, dann brauch das auf jeden fall mehr Speicher). Braucht sowas noch nicht für wiklich grosse arrays wo das von intresse würde.

     Antworten

    Beitrag von Pouraga (1396 Beiträge) am Freitag, 1.Juli.2005, 22:10.
    Re: @Perler - Schleife in ner Abfrage einer Bedingungskette möglich?

      Hab nochmal gelesen
      geht es bei l_vnamen nur um boolean werte?
      Dann (und theoretisch eigentlich auch für text) kannst das z.B. so machen:

      @l_vnamen = ("var1","Diter","var3","var4","var5");
      if (index (join("#",@l_vnamen), "Dieter") >= 0){
      

      }

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 1.Juli.2005, 22:39.
    Re: @Perler - Schleife in ner Abfrage einer Bedingungskette möglich?

      ah, in php wärs soooo einfach
      if(in_array("blaa",$blubb))...
      

      :)

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 2.Juli.2005, 03:01.
    Re: @Perler - Schleife in ner Abfrage einer Bedingungskette möglich?

      Ah, in Perl doch auch

      if(index(" @array ", " $wert ")>=0) ...
      

      ;-)

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Samstag, 2.Juli.2005, 10:50.
    Neue Frage - Div. durch Null verh. - Re: @Perler - Schleife in ner Abfrage

      danke an alle - Denkanstöße angekommen und verarbeitet ;-)

      Gleich mal noch ne neue Frage, wie verhindert man denn sinnvoll und einfach ne Division durch Null, wenn die Divisoren erst zur Laufzeit generiert werden ?
      Hats da nen Trick bzw. irgendwie ne Abfangroutine oder muss man das immer explizit für jede Division auf "nicht Null" abfragen?
      Danke für Tipp

     Antworten

    Beitrag von Sander (8133 Beiträge) am Samstag, 2.Juli.2005, 18:37.
    Re: @Perler - Schleife in ner Abfrage einer Bedingungskette möglich?

      nene...
      das kann ja auch in der liste so vorkommen, oder?

      ich hab gestern was gefunden...
      if(grep{$_ eq "Hansi"} @l_vnamen){
        out "jo";
      }else{
        out "nö";
      }
      

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Samstag, 2.Juli.2005, 19:35.
    Re: @Perler - Schleife in ner Abfrage einer Bedingungskette möglich?

      Die Listenelemente werden durch das Leerzeichen getrennt, d.h. wenn man weiss dass keine Leerzeichen in den Elementen vorkommen, dann gehts... Ansonsten kann man mit $" ein anderes Zeichen bestimmen, z.b. $"="*"; den *, dann wäre die Abfrage if(index("*@array*", "*$wert*"); Aber wenn das mit dem grep klappt, ist das natürlich besser ;-)

     Antworten


     
 Liste der Einträge von 23625 bis 23700:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.09s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!