Stefan Welscher: Perl-Expect - Binärdateien übertragen?

Beitrag lesen

Ich hab jetzt noch was spannendes herausgefunden.... ich hab mal die Orginaldatei und die Datei, die das Expect-Script anlegt in Notepad++ geöffnet und verglichen (incl. aller Sonderzeichen).
Zu 99,9% sind die Dateien identisch, allerdings hab ich vier Stellen gefunden, an denen in der Orginaldatei ein Leerzeichen gefolgt von dem Code "BS" steht, die nicht in die Zieldatei übernommen wurden.

lt. Google handelt es sich aber um ein Backspace-Zeichen:
0001000 08 8 ^H BS Backspace

Also werden Leerzeichen gefolgt von Backspace nicht übernommen... und da kommt mir doch etwas von gesten hoch (nein, nicht das Gulasch..):

Aus der Expect.pm-Doku:
raw_pty(1_|_0)"$object->raw_pty(1 | 0)
Set pty to raw mode before spawning. This disables echoing, CR->LF translation and an ugly hack for broken Solaris TTYs (which send <space><backspace> to slow things down) and thus gives a more pipe-like behaviour (which is important if you want to transfer binary content). Note that this must be set before spawning the program.

Nachtigal, ich hör dir Trapsen!!!
raw_pty hab ich ja gesetzt, aber wird das evtl. nicht richtig umgesetzt?

Wenn ich jetzt in der Expect.pm nachsehe finde ich ab Zeile 859 folgendes:

# ugly hack for broken solaris ttys that spew <blank><backspace>
  # into our pretty output
$buffer =~ s/ \cH//g;

OK, dann machen wir mal folgendes draus:

# ugly hack for broken solaris ttys that spew <blank><backspace>
  # into our pretty output
#Disabled for binary file transfer
#$buffer =~ s/ \cH//g;

unnnnnnnnnnnnnnnnnddddddddddddd:

TAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAA!!!! geht :D

Ich will jetzt zwar nicht wissen, was passiert, wenn ich mal mit einem "broken Solaris TTY" kommunizieren muss, aber mein Ziel hab ich erreicht :/

Trotzdem Danke für den Beistand!