Christoph: grep

ich habe diese anweisung

@sockets = grep !/$socket/, @sockets;

in @sockets steht sowas in der art : IO::Socket::INET=GLOB(0x861710)

in $socket: IO::Socket::INET=GLOB(0x861710)

und $socket soll von den array gelöscht werden dies geht aber nicht kennt jemand ne antwort

  1. Hallo,

    ich habe diese anweisung

    @sockets = grep !/$socket/, @sockets;

    in @sockets steht sowas in der art : IO::Socket::INET=GLOB(0x861710)

    in $socket: IO::Socket::INET=GLOB(0x861710)

    und $socket soll von den array gelöscht werden dies geht aber nicht kennt jemand ne antwort

    ich würde es so lösen:

      
    for ( my $i = 0; $i < @sockets; $i++)  
    {  
        if ( $socket eq $sockets[$i] )  
        {  
            undef $sockets[$i];  
        }  
    }  
    
    

    mfG,
    steckl

    1. ich würde es so lösen:

      for ( my $i = 0; $i < @sockets; $i++)
      {
          if ( $socket eq $sockets[$i] )
          {
              undef $sockets[$i];
          }
      }

        
      Naja, das ist kein Perl Style. Es ist zwar nicht falsch, aber Perl bietet wesentlich schönere Möglichkeiten Schleifen zu bauen.  
        
      ~~~perl
        
      foreach my $s ( @sockets)  
      {  
           undef $s if $socket == $s;  
      }  
      
      

      Aber auch grep und map sind sehr schöne und schnelle Möglichkeiten eine Liste zu durchlaufen

      Struppi.

      --
      Javascript ist toll (Perl auch!)
      1. Hallo,

        Naja, das ist kein Perl Style. Es ist zwar nicht falsch, aber Perl bietet wesentlich schönere Möglichkeiten Schleifen zu bauen.

        Da hast du wohl recht.

        foreach my $s ( @sockets)

        {
             undef $s if $socket == $s;
        }

        ist das `==`{:.language-perl} ein Tippfehler? Hier bräuchte man doch `eq`{:.language-perl}, oder?  
          
        mfG,  
        steckl
        
        1. foreach my $s ( @sockets)

          {
               undef $s if $socket == $s;
          }

          
          > ist das `==`{:.language-perl} ein Tippfehler? Hier bräuchte man doch `eq`{:.language-perl}, oder?  
            
          Bin mir nicht sicher, aber ich denke schon. Es sind ja Objekte die er vergleichen Möchte und kein Stringvergleich.  
            
          Struppi.
          
          -- 
          [Javascript ist toll](http://javascript.jstruebig.de/) (Perl auch!)
          
          1. Hallo,

            Bin mir nicht sicher, aber ich denke schon. Es sind ja Objekte die er vergleichen Möchte und kein Stringvergleich.

            Damit kenn ich mich nicht aus, aber du hast wohl recht.
            Das ist dann wohl der Grund, warum der Reguläre Ausdruck bei dem grep nicht funktioniert.

            mfG,
            steckl