Thread Probleme bei Datei Aufsplitten (9 answers)
Opened by KA2065 at 2005-09-26 12:42

Dubu
 2005-09-29 14:13
#58396 #58396
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Man sollte noch auf den Unterschied zwischen
Code: (dl )
split / /, $foo

und
Code: (dl )
split " ", $foo

hinweisen.

Die erste Versionen teilt den String $foo an einzelnen Leerzeichen auf, d.h. wenn irgendwo mehrere Leerzeichen aufeinander folgen, dann werden leere Felder fuer den Raum "zwischen den Leerzeichen" zurueckgegeben. Tabs werden gar nicht als Trenner genommen.

Die Version mit " " hat dagegen eine besondere Bedeutung: Es werden Folgen von Whitespace (also Leerzeichen und Tabs) zusammengefasst, und fuehrender Whitespace am Anfang einer Zeile wird automatisch uebersprungen. split() arbeitet in diesem Fall also genauso wie das Programm awk.

Die Variante
Code: (dl )
split /\s+/, $foo

entspricht eher dem zweiten Fall, aber fuehrender Whitespace fuehrt hier zu einem leeren ersten Feld.

Fuer das angegebene Problem und aehnliche Faelle, in denen Daten durch einfache oder mehrfache Leerzeichen oder Tabs getrennt sind, ist es also definitiv besser, split " ", $temp1 zu benutzen.

View full thread Probleme bei Datei Aufsplitten