Thread XML::Simple - Escaping
(5 answers)
Opened by Andre at 2010-08-20 12:08
Hallo Andre,
an print liegt es nicht, sondern eben am Dumper. In meinem Beispiel klappt allerdings auch die Zuweisung mit den beiden Backslashes nicht: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 #!/usr/bin/perl use strict; use warnings; use Data::Dumper; my $string = '\\w'; print "PRINT vor subst: $string\n"; print Dumper "DUMPER vor subst: ".$string; print "Length vor subst: " . length($string) . "\n\n"; $string =~ s/(\\)+/\\/g; print "PRINT nach subst: $string\n"; print Dumper "DUMPER nach subst: ".$string; print "Length nach subst: " . length($string) . "\n"; __END__ Output: PRINT vor subst: \w $VAR1 = 'DUMPER vor subst: \\w'; Length vor subst: 2 PRINT nach subst: \w $VAR1 = 'DUMPER nach subst: \\w'; Length nach subst: 2 Wenn ich in Zeile 5 nur einen Backslash zuweise, verhält es sich genau gleich. Wenn ich aber vier Backslashes zuweise my $string = '\\\\w';, dann tut die RegEx was sie soll. PRINT vor subst: \\w $VAR1 = 'DUMPER vor subst: \\\\w'; Length vor subst: 3 PRINT nach subst: \w $VAR1 = 'DUMPER nach subst: \\w'; Length nach subst: 2 Mit anderen Worten, wenn Deine Escape-Sequenzen wirklich doppelt escaped sind, sollte das mit Deiner (oder meiner) RegEx behoben werden. Grüße payx |