Perl ist für das Lesen und Bearbeiten von Text -Daten konzipiert. Es ist einfach, die drei grundlegende Datenstrukturen ( die skalare , die Liste und die Hash ) zu manipulieren , weil der Perl-Interpreter kann basierend auf kontextuellen Daten eingeben. Die am häufigsten manipuliert Datenformat in Perl ist kommagetrennte Werte . Anleitung
1
Öffnen Sie die Datei , wenn Sie nicht lesen, Daten von STDIN oder DATA . Verwenden Sie einen filehandle die leicht identifiziert ist : "open csvfile " test.csv ";"
2
Lesen der Daten. Bei kleinen Dateien können Sie alle Zeilen auf einmal zu lesen. Für große Dateien , sollten Sie lesen eine Zeile zu einem Zeitpunkt, und verarbeitet sie vor dem Lesen der nächsten Zeile . Hier wird der Winkel "magic Syntax " zum Lesen aller Zeilen verwendet werden, um alle Zeilen in das Array @ lines lesen : "@ lines = ; "
3
Streifen die Zeilenumbrüche die Ende jeder Zeile , mit der map-Funktion . Die Zeilenumbrüche werden nicht benötigt , da sie bedeutungslos , wenn alle Linien in. Die Map-Funktion gelesen werden wird der Block als erstes Argument für jedes Element in der Liste geführt nennen sind: " Karte ( { } @ chomp Linien ); "
4
Split die Linien . Die Komma - getrennte Werte müssen in Arrays, die mit Hilfe der Split-und Map-Funktion erreicht werden kann aufgeteilt werden. Die Linien werden in ähnlicher Weise wieder zusammengefügt werden , wenn die Daten wieder gedruckt werden. " @ lines = map ( { [ split /, /]} @ lines )," .
5
die Daten manipulieren , jetzt , dass alle Daten im Speicher in einem leicht zugänglichen Format ist
Seite 6
Schleife über sie mit dem foreach Schlüsselwort. Die foreach Schlüsselwort läuft einen Block für jedes Element in einem Array , das jedem Array-Element ein Verweis auf die vorgegebene Variable. Dieses Beispiel setzt voraus, das zweite Feld ( Array-Index 1) enthält einen numerischen Wert , und fügt 20 zu. Alle anderen Manipulationen , einschließlich Mathematik und Stringmanipulationen , kann in ähnlicher Weise durchgeführt werden : " foreach ( @ lines ) { $ _ -> [ 1] + = 20; }"
7
Begib dich mit der Daten , bevor sie zurück in eine cSV-Datei geschrieben werden. Die Felder müssen mit Komma danach wieder : " @ lines = map ( { join" , " @ { $ _ }} @ lines ); "
8
Drucken Sie die Daten. Auch hier werden Sie Schleife über @ lines , aber dieses Mal nur drucken, jede Zeile . Hier werden die Zeilen auf STDOUT gedruckt , aber man könnte genauso gut neue Datei öffnen und drucken zu , dass : ;
< " { \\ n" foreach ( @ lines ) print $ _ . "} " br>