Thread File::remove: need example (22 answers)
Opened by honky at 2006-05-23 15:04

Dubu
 2006-05-24 11:34
#66539 #66539
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
[quote=GwenDragon,23.05.2006, 14:58]perlop schreibt:
Quote
qw/STRING/

Evaluates to a list of the words extracted out of STRING, using embedded whitespace as the word delimiters. It can be understood as being roughly equivalent to:
   split(' ', q/STRING/);

Das bedeutet, dass eine Liste aus dem Muster erzeugt wird, wobei das Leerzeichen als Wortgrenze angesehen wird.[/quote]
Vorsicht, nicht einfach dieses einzelne Leerzeichen, sondern beliebige Mengen an Whitespace sind die Begrenzung bei diesem split.

Man beachte die Unterschiede zwischen / /, /\s+/ und ' ' bei split:

Code: (dl )
split / /, $string;
teilt $string an einzelnen Leerzeichen auf. Zwei Leerzeichen hintereinander ergeben ein leeres Element der Liste. Leerzeichen am Anfang von $string ergeben auch leere Elemente.

Code: (dl )
split /\s+/, $string
teilt $string an Folgen von Whitespace (Leerzeichen, Tab, Vertikaler Tab) auf. Whitespace am Anfang von $string führt zu einem leeren Element am Anfang der Ergebnisliste.

Code: (dl )
1
2
3
4
5
split ' ', $string
# oder
split " ", $string
# oder andere Quote-Varianten, z.B.
split q{ }, $string
teilt $string ebenfalls an Folgen von Whitespace (Leerzeichen, Tab, Vertikaler Tab) auf, aber Whitespace am Anfang von $string wird hier ignoriert!

Dieses Feature von split wird oft übersehen, denn der Unterschied zwischen /pattern/ und "pattern" bei split besteht nur dann, wenn pattern exakt ein Leerzeichen ist. Man sollte sich auch deshalb angewöhnen, immer split /pattern/, ... zu schreiben. So fällt ein split ' ', ... direkt auf.

Nur zur Erinnerung.

View full thread File::remove: need example