Split() - Dynamisch
Danfix
- perl
Kann ich die split()-Funktion auch dynamisch aufrufen, also z.B.:
my $IndexToken="|";
@array = split($IndexToken,$Text);
Das funzt bei mir nicht...
Es funktioniert nur:
@array = split(/|/, $Text);
Gibt es ne Möglichkeit, das Trennungszeichen variabel anzugeben?
hi,
versuchs mal so:
$s = 'rolf|otto|erwin';
$token = '|';
@a = split /$token/, $s;
print join "\n", @a, "\n";
$s = 'rolf;otto;erwin';
$token = ';';
@a = split /$token/, $s;
print join "\n", @a, "\n";
Rolf
Sehr schön....funktioniert einwandfrei!
Dankeschön!
hi,
nochewas:
$s = 'rolf|otto|erwin';
$token = '|';
@a = split /\Q$token\E/, $s;
print join "\n", @a, "\n";
\Q quote (disable) pattern metacharacters till \E
Rolf
Moin Moin !
Das erste Argument für Split ist kein String, sondern ein regulärer Ausdruck. Den kannst Du natürlich auch vorher einer Variablen zuweisen und später in split benutzen. Es gibt auch eine Funktion quotemeta, um für REs kritische Zeichen zu maskieren.
Plan B, wenn es denn immer nur ein Zeichen sein soll: index() und substr()
Mehr zu beiden Themen: perldoc perlfunc
Alexander