Thread "heraus schneiden" mit Split (10 answers)
Opened by KarlaCluft at 2012-12-15 13:56

betterworld
 2012-12-17 02:20
#164262 #164262
User since
2003-08-21
2613 Artikel
ModeratorIn

user image
Hi,
also mal zu der ursprunglichen Frage:
Code (perl): (dl )
1
2
3
4
5
6
$text = "Ich möchte DIESE STELLE herausbekommen";

@text = ("$text");
foreach (@text){
my (undef, $ergebnis)=split(/Ich möchte/);
print "$ergebnis\n";}


Ich habe da mal die Quotes ergänzt in der ersten Zeile. Dann habe ich das "undef, " hinzugefügt. Nun gibt das Script aus: " DIESE STELLE herausbekommen", es wurde also quasi der vordere Teil "abgesplittet". Ich vermute mal, dass das die Intention von diesem Code war. Mit dem undef sorgt man dafür, dass der zweite Rückgabewert von split in der Variablen $ergebnis landet. Alternativ könnte man es auch so schreiben:

Code: (dl )
my $ergebnis = (split /Ich möchte/)[1];


Tatsächlich habe ich Python-Programme gesehen, wo split auf diese Weite benutzt wird, um bestimmte Teile aus einem String herauszuholen. Das liegt daran, dass Regexes in Python umständlicher zu benutzen sind und split so ziemlich die schnellste Lösung für das Problem ist. In Perl würde jeder sowas mit Regexes machen und käme nie auf die Idee, split zu nutzen.

Außerdem frage ich mich, warum da extra ein Array mit nur einem Element definiert wird und dann darüber iteriert wird...

Ich würde dir raten, eine der Lösungen von den anderen Postern zu nehmen.

Editiert von betterworld: Klammern gefixt, Raubtier++
Last edited: 2012-12-17 10:31:15 +0100 (CET)

View full thread "heraus schneiden" mit Split