Ich habe eine Datei INPUT, die folgenden Inhalt hat:
%Vor%Ich möchte mein Skript wie folgt ausführen: script.rb & lt; INPUT und lassen Sie den Inhalt der INPUT-Datei in ein Array konvertieren, indem Sie das neue Zeilenzeichen aufteilen. Also, ich hätte etwas wie myArray = [123,456,789]. Hier ist, was ich versucht habe und habe nicht viel Glück:
%Vor%Ich erwarte, dass dies 3 druckt, aber ich bekomme 15. Ich bin hier wirklich verwirrt. Irgendwelche Zeiger?
Sie möchten
%Vor%Damit wird $ stdin in ein Array mit einem Array-Eintrag pro Eingabezeile eingefügt.
Beachten Sie, dass dies bei großen Eingabedateien spektakulär ineffizient (speicherorientiert) ist, so dass Sie viel besser mit etwas wie:
umgehen können %Vor%statt
%Vor%Weil ersteres keinen Speicher für alles im Voraus reserviert. Versuchen Sie, eine Protokolldatei mit mehreren Gigabyte auf die zweite Weise zu verarbeiten, um zu sehen, wie gut die Swap-Leistung Ihres Systems ist ... & lt; grin & gt;