2016-09-01 4 views
2

Zum Beispiel möchte ich den Inhalt des Befehls ipconfig in einem Array speichern, so dass jede Ausgabezeile in einem neuen Arrayindex gespeichert wird, d. H. array[0] enthält die Ausgabe der ersten Zeile. array[1] enthält die 2. Zeile Ausgabe und so weiter.Wie die Ausgabe eines Befehls in einem Array Zeile für Zeile in Perl gespeichert werden?

Wie kann ich das erreichen?

+0

Ich würde die aufgenommene Ausgabe mit Backticks in ein "Skalar" zuweisen und "Spilt" verwenden und es einem 'Array' zuweisen. Das ist eine Möglichkeit, das zu tun. – Ghost

+0

Nein, nein, nein @Ghost. Backticks im Listenkontext fangen die Ausgabe bereits in ein Array ein, eine $// endende Zeile pro Element. – mob

+0

@mob: Oh! Das war mir nicht bewusst. Danke, dass du mich darüber informiert hast. Behalte das im Hinterkopf – Ghost

Antwort

9

Eine einfache

@array = `ipconfig`; 

funktioniert der Trick. Beachten Sie, dass, wie Borodin zu Recht betont, die so zugewiesenen Array-Elemente die Zeilenumbrüche enthalten.

+1

Das war schlau! –

+2

@Coder: Denken Sie daran, dass jede Zeile im Array mit einem Newline-Zeichen abgeschlossen wird, das abhängig von Ihrer Anwendung möglicherweise chomped sein muss. – Borodin

+0

Verstanden! Vielen Dank :) – Coder

Verwandte Themen