islandius: readln Funktion

Hallo @all,

Ich habe vor IDs in ein array zu laden. Diese stehen wie folgt in der Datei:

aaa
bbb
ccc
ddd

usw.

Beim Einlesen mit:

$file = "ID.txt";
open(FILE,"<$file") || die "Log-Datei weg!";
@arr_IDS  = <FILE>;

wird in das Array jeweils pro Einheit ein Wert reingesetzt (also aaa im ersten, bbb im zweiten usw.).
Mein Problem ist jetzt, dass es stets auch den Absatz (\n) miteinliest. Gibt's dafür ein guten Trick um das zu ignorieren. Oder nach dem einlesen für alle Werte im Array rauszulöschen?

Vielen lieben Dank

islandius

  1. Hi,

    Oder nach dem einlesen für alle Werte im Array rauszulöschen?

    strip() sollte dir da helfen. Wenn ich mein PERL noch richtig im Kopf hab, werden dabei alle Leerzeichen und Zeilenumbrüche von einem String abgeschnitten.
    Dazu musst du das Array natürlich einmal durchlaufen, was du bei der Weiterverarbeitung aber sowieso tun wirst, schätz ich mal ;)

    OT: Ich merk grad, das mein PERL verdammt eingerostet ist, seit ich nur noch PHP und C/C++ programmiere. Muss wohl mal wieder auffrischen und die Grundlagen neu erarbeiten :)

    1. Hi Manuel,

      Das mit dem strip könnte funktionieren... allerdings ist mir eine wohl bessere Idee gekommen:

      foreach Schleife

      und dann jeweils über regüläre AUsdrücke das "\n" ausradieren. Nur dabei grüble ich gerade wie das genau geht.
      So etwa?
       @arr_IDS =~ s/\n\s+//;

      Wofür steht dann das zuweite "s" und das "+"?

      Danke

      1. Hell-O!

        Das mit dem strip könnte funktionieren.

        Nein, Perl kennt keine Funktion mit diesem Namen.

        allerdings ist mir eine wohl bessere Idee gekommen:

        Au ja, mir auch!

        Siechfred

        --
        Hier könnte Ihre Werbung stehen.
        Das Steuer-Blog | Siechfreds Tagebuch
        1. Hi,

          Au ja, mir auch!

          Das wars. Ich meinte chomp und hab das wohl verwechselt. Wie gesagt, ich bin in Punkto PERL völlig eingerostet :(

      2. Hi,

        Wofür steht dann das zuweite "s" und das "+"?

        Das s+ gehört zusammen und steht für Whitespaces.