Thread Inhalt Array umdrehen (5 answers)
Opened by perln00b at 2010-10-05 19:54

murphy
 2010-10-05 23:06
#141745 #141745
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
2010-10-05T19:03:13 GwenDragon
split arbeitet aber mit einem Regex, nicht mit einer Zeichenkette als Trennzeichen. Nicht, um die Anfänger zu irritieren.
Wenn das Leerzeichen als Trenner verwendet wird, benimmt sich split wie bei awk.
[...]

Irgendwie widersprechen sich diese zwei Sätze gegenseitig. split behandelt ein erstes Argument, welches exakt die Zeichenkette ' ' ist eben nicht wie einen regulären Ausdruck sondern in spezieller Weise.

Ich poste sicherheitshalber nochmal die genaue Beschreibung aus -f split:
Quote
[...]
As a special case, specifying a PATTERN of space (' ') will split on white space just as "split" with no arguments does. Thus, "split(' ')" can be used to emulate awk's default behavior, whereas "split(/ /)" will give you as many initial null fields (empty string) as there are leading spaces. A "split" on "/\s+/" is like a "split(' ')" except that any leading whitespace produces a null first field. A "split" with no arguments really does a "split(' ', $_)" internally.
[...]


Anders ausgedrückt sind split(' ', $_); und split; äquivalent und bewirken in etwa das gleiche wie do { my $tmp = $_; $tmp =~ s/^\s*(.*?)\s*$/$1/; split(/\s+/, $tmp) };

Wahrscheinlich ist bei der vorliegenden Fragestellung die Nutzung dieses Standardverhaltens von split in der Tat sinnvoller als die Verwendung eines regulären Ausdrucks als Feldtrenner.
When C++ is your hammer, every problem looks like your thumb.

View full thread Inhalt Array umdrehen