martin: array in variable schreiben

hi,

kann man es irgenwie machen, dass alle elemente aus einem array in eine variable geschreiben werden.

1000 dank für hilfreiche antworten

  1. Halihallo martin

    kann man es irgenwie machen, dass alle elemente aus einem array in eine variable geschreiben werden.

    Wie meinst du das?

    Voraus zwei Tipps und Lektüre:

    my $variable = join(',',@array);
    my $variable = @array;

    perldoc -f join
    perldoc -f foreach
    perldoc perlreftut
    perldoc perlref

    Viele Grüsse

    Philipp

    --
    RTFM! - Foren steigern das Aufkommen von Redundanz im Internet, danke für das lesen der Manuals.
    Selbstbedienung! - Das SelfForum ist ein Gratis-Restaurant mit Selbstbedienung, Menüangebot steht in den </faq/> und dem </archiv/>.
    1. also, mein perl-prog liest eine datei aus. jetzt wird ein suchwort eingegeben und das suchwort wird mit dem array verglichen.

      @inhalt = inhalt der datei;

      if(@inhalt =~ /$suchmuster/) {
      print "$suchmuster gefunden";
      } else {
      print "Nichts gefunden";
      }

      aber ich glaube man kann nur skalare variablen mit einem suchmuster überprüfen, jetzt muss ich entweder das array in eine variable reinschreiben oder das so machen, dass das suchmuster das array überprüft.

      1. Hallo,

        @inhalt = inhalt der datei;

        if(@inhalt =~ /$suchmuster/) {
        print "$suchmuster gefunden";
        } else {
        print "Nichts gefunden";
        }

        Zu allererst einmal: Eine Datei komplett einzulesen, ohne daß deren Inhalt weiter gebraucht wird, kann sehr resourcenverschwendend sein. In den meisten Fällen ist es einfahc nicht notwendig, die ganze Datei im Speicher zu halten.

        Beispiel:
        my $ausgabe = 'nichts gefunden';

        while(<IN>)
          {
          if( /$suchmuster/)
            {
            $ausgabe = "$suchmuster gefunden";
            last;
            }
          }
        close IN;
        print $ausgabe;

        macht das gleiche, hat allerdings den Vorteil, bei einem Treffer die Datei gar nicht vollständig einlesen zu müssen.

        Allerdings könnte es durchaus sein, daß DU wirklich den ganzen Inhalt brauchst, dann könntest Du auch statt der while-Schleife mit einer foreach-Schleife durch das Array durchgehen.

        Auch ein Blick auf die Funktion grep könnte Dir weiterhelfen.

        Grüße
          Klaus

        1. use Mosche;

          Allerdings könnte es durchaus sein, daß DU wirklich den ganzen Inhalt brauchst, dann könntest Du auch statt der while-Schleife mit einer foreach-Schleife durch das Array durchgehen.

          Es ist auch möglich (aber, wie Klaus gesagt hat, _meist_ nicht sinnvoll), die ganze Datei auf einen Rutsch in einen Skalar einzulesen.

          local $/ = undef;
          my $variable = <FH>;

          use Tschoe qw(Matti);

          --
            Anyone who quotes me in their sig is an idiot. -- Rusty Russell.