Bolt Jenkins: not equal (ne) mit mehreren Werten vergleichen`?

Hallo

kann man in PERL die Abfrage Variable x not equals (ne) Variable y auch auf mehrere Testwerte anwenden? Also .... ne  variable x,y und z ?? So dass praktisch mehrere Werte "erlaubt" bleiben ?

Vielen Dank
Bolt

  1. Hallo

    kann man in PERL die Abfrage Variable x not equals (ne) Variable y auch auf mehrere Testwerte anwenden? Also .... ne  variable x,y und z ?? So dass praktisch mehrere Werte "erlaubt" bleiben ?

      
    if (($i ne $x) || ($i ne $y) ||($i ne $z))  
         {  
         #bedingung erfüllt ($i ist nicht $x, nicht $y und nicht $z;  
         }  
    
    

    meinst Du sowas?

    Vielen Dank
    Bolt

    mfG der Hilker

    1. Vielleicht eher...

        
      if (($i eq $x) || ($i eq $y) ||($i eq $z))  
      {  
          #bedingung erfüllt ($i ist $x oder $y oder $z);  
      }  
      
      
      1. Vielleicht eher...

        if (($i eq $x) || ($i eq $y) ||($i eq $z))
        {
            #bedingung erfüllt ($i ist $x oder $y oder $z);
        }

        Au jau... shit :-)  
        
        > 
        
        1. Vielleicht eher...

          if (($i eq $x) || ($i eq $y) ||($i eq $z))
          {
              #bedingung erfüllt ($i ist $x oder $y oder $z);
          }

          
          > Au jau... shit :-)  
          > >   
            
          Hmmmm. also das von vorhin hätte meiner Meinung nach besser ausgesehen....aber sicher bin ich nicht ;-)  
            
           wenn $i nicht einer der Variablen x,y,z entspricht, dann....usw usw..      war meine Idee dahinter...  
            
          Bolt
          
          1. gudn tach!

            Hmmmm. also das von vorhin hätte meiner Meinung nach besser ausgesehen....aber sicher bin ich nicht ;-)

            wenn $i nicht einer der Variablen x,y,z entspricht, dann....usw usw..      war meine Idee dahinter...

            aha!

            ok, dann kannst entweder deinen kram in den else-zweig schreiben oder du negierst einfach den ausdruck:

            if(($i ne $x) && ($i ne $y) && ($i ne $z)){
                # $i ist weder $x, $y noch $z
            }

            je nach anwendung ist mal der eine mal der andere ansatz schneller. i.a. wuerde ich Hilkers/Cruz' ansatz bevorzugen.
            und falls es sich um viel mehr variablen handelt, sind schleifen - schon der lesbarkeit halber - vorzuziehen.

            prost
            seth

  2. gudn tach Bolt!

    kann man in PERL die Abfrage Variable x not equals (ne) Variable y auch auf mehrere Testwerte anwenden? Also .... ne  variable x,y und z ??

    ich frage fuer mein verstaendnis nach:
    1a) willst du pruefen ob eine variable x keiner der variablen (a, b, c) gleicht?

    1b) willst du pruefen ob eine variable x mind einer der variablen (a, b, c) nicht gleicht?

    2a) willst du pruefen ob keine der variablen (x, y, z) einer der variablen (a, b, c) gleichen?

    2b) willst du pruefen ob eine der variablen (x, y, z) einer der variablen (a, b, c) nicht gleicht?

    2c) willst du pruefen ob alle variablen (x, y, z) nicht den variablen (a, b, c) gleichen, wobei die n-te mit der n-ten verglichen wird? (x ne a, y ne b, z ne c)

    2d) willst du pruefen ob eine der variablen (x, y, z) nicht den variablen (a, b, c) gleicht, wobei die n-te mit der n-ten verglichen wird?

    wahrscheinlich waere

    So dass praktisch mehrere Werte "erlaubt" bleiben ?

    die antwort auf meine frage(n), allerdings habe ich den satz nicht verstanden.

    prost
    seth

  3. Tag.

    kann man in PERL die Abfrage Variable x not equals (ne) Variable y auch auf mehrere Testwerte anwenden? Also .... ne  variable x,y und z ?? So dass praktisch mehrere Werte "erlaubt" bleiben ?

    Prinzipiell sollte das mit grep möglich sein:

    my @arr = ("werner", "willi", "foo", "bar");  
    print "'foo' found!\n" if(grep { $_ eq 'foo' } @arr);  
    print "'bla' found!\n" if(grep { $_ eq 'bla' } @arr);
    

    Ob's was bringt, musst du selber testen.

    Siechfred