#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $text = "2, 1";
$text =~ s/, /\, /g;
print Dumper($text) . "\n";
exit 0;
Wie kann ich das Komma durch *einen* Backslash und ein Komma ersetzen?
Ich hab schon alles, was ich kenne versucht, aber...
Danke und Gruᅵ, Helmut
--
No Swen today, my love has gone away
My mailbox stands for lorn, a symbol of the dawn
> #!/usr/bin/perl
>
> use strict;
> use warnings;
>
> use Data::Dumper;
>
> my $text = "2, 1";
> $text =~ s/, /\, /g;
> print Dumper($text) . "\n";
>
> exit 0;
>
> Wie kann ich das Komma durch *einen* Backslash und ein Komma ersetzen?
$text =~ s/, /\\, /g;
oder:
$text =~ s', '\, 'g;
> Ich hab schon alles, was ich kenne versucht, aber...
...nicht gepr�ft, was Dumper() eigentlich genau tut:
perl -e 'use Data::Dumper; print Dumper(chr(92));'
Nachdem ich das auch versuchte, kann es sein, dass z.B. ein "join" die
Backslashes escaped und damit die Anzahl halbiert?
>> Ich hab schon alles, was ich kenne versucht, aber...
>
> ...nicht gepr�ft, was Dumper() eigentlich genau tut:
Dumper war ein Schnellschusss zu Demonstrationszwecken, das eigentliche
Problem ist Net::LDAP und der Versuch eines Rookies, References of Hashes of
Hashes of Arrays, LDAP und ein "," im distinguishedName zu verheiraten. Da
kann man schonmal den Fokus verlieren - finde ich.
>>> Wie kann ich das Komma durch *einen* Backslash und ein Komma
>>> ersetzen?
>>
>> $text =~ s/, /\\, /g;
>
> Nachdem ich das auch versuchte, kann es sein, dass z.B. ein "join"
> die Backslashes escaped und damit die Anzahl halbiert?
Wie meinen? join() k�mmert sich soweit ich wei� nicht um Escapes. Ich
verstehe deine Frage aber auch nicht wirklich.
Komisch. Egal, jetzt geht es ja.
> Nachdem ich das auch versuchte, kann es sein, dass z.B. ein "join" die
> Backslashes escaped und damit die Anzahl halbiert?
Ein Backslash markiert entweder das folgende Zeichen und verleiht ihm eine
besondere Bedeutung (z.B. "\n" - bedeutet nicht Backslash und "n", sondern
Zeilenumbruch), oder er hebt die besondere Bedeutung des ihm folgenden
Zeichens auf (z.B. /\?/ - die besondere Bedeutung des "?" in regul�ren
Ausdr�cken wird aufgehoben).
Um einen Backslash zu erhalten, muss man daher _zwei_ Backslash
hintereinander schreiben - der zweite hebt sozusagen die Funktion des ersten
wieder auf und �brig bleibt _ein_ Backslash.
Das ist �brigens nicht nur in Perl, sondern z.B. auch in den meisten Shells
so.
Und mit join u.� hat das nichts zu tun.
LG, Ferry
--
Ing. Ferry Bolhar
Magistrat der Stadt Wien - MA 14
A-1010 Wien
E-Mail: ferdinand.bolh...@wien.gv.at