philipp: array

ich bräuchte hilfe für die bearbeitung eines arrays.
normaler weise werden bei den arrays die einzelnen werte ja durch ein "return" getrennt. in meinem fall möchte ich aber nun alle meine werte durch ein "leerzeichen" trennen.
ist das möglich?
wenn ja, wäre ich für eine lösung mit einer kleinen erklärung sehr dankbar.

  1. hi hi

    ich beaupte mal das es nicht richtig ist das arrayelement durch ein return getrennt werden?!
    wie erzeugst du den Array?
    sind in der Quelle schon die zeilenumbüche?

    probier mal das:

    s/\015/ /g;   #  zeichen für CF
          s/\012/ /g;   #  zeichen für LF  oder umgedreht
          s/\n/ /g;

    bis bis roman

  2. Hi,

    ich bräuchte hilfe für die bearbeitung eines arrays.
    normaler weise werden bei den arrays die einzelnen werte ja durch ein "return" getrennt. in meinem fall möchte ich aber nun alle meine werte

    Bist du dir da sicher?

    durch ein "leerzeichen" trennen.
    ist das möglich?
    wenn ja, wäre ich für eine lösung mit einer kleinen erklärung sehr dankbar.

    Ich weiss nicht was du benutzt, aber für mich ist das ein Array:

    @liste = ("wert1","wert2","wert3");

    Wenn du ein simples print auf das Array machst (print @array;) erhaelst du "wert1 wert2 wert3"

    Wenn du ein einzelnen EIntrag ausgibst, machst du  print $array[nummer];

    Ich vermute fast, du benutzt bisher einen String, bei den du die Werte mit dem Returnzeichen trennst und dann per Split() zu einem echten Array machst?
    Also sowas:

    $string = "wert1\n$wert2\n$wert3";
    @liste = split(/\n/,$string);
    print @liste;

    ?

    Was willst du machen, was hast du. Gib mal etwas Code.

    Ciao,
     Wolfgang

    1. ich will einprogramm schreiben, wo ich einen beliebigen text eingebe.
      anschließend soll der text, die anzahl der wörter und die anzahl der vorhandenen vokale ausgegeben werden.
      zu dem (noch nicht vorhanden) programmteil mit den vokalen bräuchte wohl oder übel auch noch einmal einen tipp.

      hier mein bisheriger quellcode

      $a = 0;
      print "bitte geben sie ihre werte ein, fuer die beendigung <STRG-Z> eingeben\n";
      chomp(@string = <STDIN>);
      foreach $word(@string)
      {
      $a++
      }
      print "@string\n";
      print "sie haben $a woerter eingegeben\n";
      sleep 4;

      1. Hi,

        ich will einprogramm schreiben, wo ich einen beliebigen text eingebe.
        anschließend soll der text, die anzahl der wörter und die anzahl der vorhandenen vokale ausgegeben werden.
        zu dem (noch nicht vorhanden) programmteil mit den vokalen bräuchte wohl oder übel auch noch einmal einen tipp.

        hier mein bisheriger quellcode

        $a = 0;
        print "bitte geben sie ihre werte ein, fuer die beendigung <STRG-Z> eingeben\n";

        besser so:
        chomp($string = <STDIN>);

        foreach $word(@string)
        {
        $a++
        }
        print "@string\n";

        print "$string\n";

        print "sie haben $a woerter eingegeben\n";

        Ganz simpel:

        @worte = split(/[\n\r\s]+/,$string)
        $a = scalar(@worte);

        Fuer die Zahl der Buchstaben nimmst du am besten eine RegExp:

        $cnt = $string =~ tr/a/a/i;

        $cnt enthaelt die Zahl der Buchstaben "a" und "A" in dem String.

        sleep 4;

        Ciao,
          Wolfgang

  3. Hi philipp,

    normaler weise werden bei den arrays die einzelnen werte ja durch ein "return" getrennt.

    Das wäre mir neu, aber ich lasse mich gern eines besseren belehren.

    in meinem fall möchte ich aber nun alle meine werte durch ein "leerzeichen" trennen.

    Möchtest du aus einem Array einen String machen, in dem die Werte durch ein Leerzeichen getrennt sind? Dann solltest du dir den Befehl join mal ansehen:

    http://selfhtml.teamone.de/cgiperl/funktionen/listenhashes.htm#join

    Viele Grüße
    Torsten

  4. normaler weise werden bei den arrays die einzelnen werte ja durch ein "return" getrennt. in meinem fall möchte ich aber nun alle meine werte durch ein "leerzeichen" trennen.
    ist das möglich?

    klar

    my @array = qw/wort1 wort2 wort3 wort4 wort5/;

    Struppi.