Funktion, um Leerzeichen in Liste zu löschen ???
Holger
- perl
0 Cheatah0 Frank Schönmann0 Holger
Hallo,
ich habe folgendes Problem:
In meinem Skript gibt es eine Liste @musikplan, in der Einträge ungefähr so vorhanden sind:
$musikplan[0] " James & Diane Hits From UK`s Finest"
$musikplan[1] " Alan Graham Rock Pop & Sax"
$musikplan[2] " Jimmi Modern Music"
etc..
Gibt es eine Funktion, mit der ich alle Leerzeichen bis auf jeweils eines zwischen den Wörtern in den einzelnen Elementen löschen kann?
Ich weiss, dass der entsprechende reguläre Ausdruck /\s+2/ heisst; möchte aber idealerweise umständlichen Quelltext umgehen.
Welchen Befehl kann ich anwenden?
Hi,
Gibt es eine Funktion, mit der ich alle Leerzeichen bis auf jeweils eines zwischen den Wörtern in den einzelnen Elementen löschen kann?
perldoc -f tr
perldoc perlop
Ich weiss, dass der entsprechende reguläre Ausdruck /\s+2/ heisst;
Zu ineffizient.
möchte aber idealerweise umständlichen Quelltext umgehen.
Huh?
Cheatah
perldoc -f tr
perldoc perlop
Wie ist es möglich die einzubinden? Könntest du einmal ein kleines Beispiel bringen? Dazu benötige ich CGI.pm?
Hi,
perldoc -f tr
perldoc perlop
Wie ist es möglich die einzubinden?
äh... Moment mal. Soll das heißen, Dir ist die Dokumentation Deiner Programmiersprache nicht bekannt? Wie zur Hölle hast Du bisher programmieren können?! Ohne Doku geht sowas doch gar nicht!
perldoc ist ein mit Perl mitgeliefertes Programm, welches Dir die genannte Dokumentation aufruft. Beginne mit
perldoc perl
perldoc perlfaq
perldoc perlstyle
Könntest du einmal ein kleines Beispiel bringen?
Die stehen hinreichend in der Doku. Die Regular-Expression-Variante solltest Du _nicht_ nutzen.
Cheatah
hi!
In meinem Skript gibt es eine Liste @musikplan, in der Einträge
ungefähr so vorhanden sind:
$musikplan[0] " James & Diane Hits From UK`s Finest"
$musikplan[1] " Alan Graham Rock Pop & Sax"
$musikplan[2] " Jimmi Modern Music"
etc..
Gibt es eine Funktion, mit der ich alle Leerzeichen bis auf
jeweils eines zwischen den Wörtern in den einzelnen Elementen
löschen kann?
Du kannst in einer for-Schleife alle Element der Liste durchgehen:
for (@musikplan) {
...
}
Innerhalb der for-Schleife existiert dann eine Variable $_, die immer
den jeweils aktuellen Inhalt aus der Liste enthält. Wenn du diese
Variable veränderst, wird auch gleichzeitig der aktuelle Eintrag in
der Liste selbst geändert.
Ich weiss, dass der entsprechende reguläre Ausdruck /\s+2/ heisst;
möchte aber idealerweise umständlichen Quelltext umgehen.
Der Ausdruck stimmt aber nicht ganz. Am einfachsten wäre das wohl in
mehreren Schritten zu lösen:
for (@musikplan) {
s/^\s+//;
s/\s+$//;
s/\s+/ /g;
}
Die erste Substitution löscht Leerzeichen am Anfang, die zweite die
am Ende eines Eintrags. Danach werden dann Leerzeichen, die doppelt
oder mehrfach vorkommen auf ein Leerzeichen reduziert.
bye, Frank!
for (@musikplan) {
s/^\s+//;
s/\s+$//;
s/\s+/ /g;
}
Haargenau das ist es!!! Vielen Dank!