Thread backslashes in dateien (open command) (13 answers)
Opened by philbert at 2007-09-21 16:54

philbert
 2007-09-21 16:54
#99815 #99815
User since
2007-09-21
7 Artikel
BenutzerIn
[default_avatar]
He Folks!

Ich hab hier ein Problem, was mich wahnsinnig macht und ich scheine auch noch unfähig zu sein es per google zu lösen ;)

Das Szenario ist eigentlich, dass ich template dateien habe, die ich einlesen will und die
Codefetzen enthalten (in diesem Fall relevant ist latex code z.B. wegen \paragraph) und teilweise auch regex'es , die ich lesen und auf strings s///'en will.

Das ganze ist aber nicht so wichtig, weil ich das Problem eh testweise auf's Wesentliche
reduziert habe:

Input File (test.in):
Code: (dl )
1
2
3
\test
\\test1
\test2 \test3 \\test4

(der Listmode in VIM zeigt mir auch an, dass es echt nur die sichtbaren chars sind - bis auf \n's und EOF gibt es in der Datei keine control chars)

Program File (test.pl)
Code: (dl )
1
2
3
4
5
6
7
8
#!/usr/bin/perl -w 

open (FILE, "test.in");
my @text = <FILE>;
foreach my $line (@text) {
print $line;
}
close FILE;


Ursprünglich fand das Lesen im Slurpmode statt - ist aber vom Resultat her irrelevant, beim ausführen von test.pl präsentiert mir die bash nämlich:
Code: (dl )
1
2
3
¥test
¥¥test1
¥test2 ¥test3 ¥¥test4


So what's this? Warum werden meine Backslashes durch seltsame specialchars ersetzt, die sich auch nicht im nachhinein weg-replacen lassen? Hat das was mit File-Encodings zu tun?

Danke für etwaige Denkanstöße schonmal im Voraus,

Paul Hilbert

View full thread backslashes in dateien (open command)