Ersetzen Leerzeichen mit Bindestrich in Perl

Möchte ich ersetzen aller Leerzeichen mit einem Bindestrich, aber die Räume sind durch 045 statt -. Der Ausdruck:

s//-/g

Den Ausdruck s//_/g (mit Unterstrich statt) funktioniert, so bin ich nicht sicher, warum i have apples wird

i,045have,045apples
  • können Sie geben eine minimale code-Beispiel wo der Fehler Auftritt. Zur info ein "-" ist dezimal 45 ASCII-code, so gibt es eine Verbindung zwischen dem Muster übereinstimmen und Ihre unbeabsichtigte Ergebnis.
  • $fstring =~ s/ /-/g; Dies ist der gesamte code ...
  • Wenn das alles ist, den code, dann wie Sie wissen, hat es 045 in es? 🙂
  • Es ist möglich, Ihre shell (oder was auch immer Sie Lesen die Ausgabe von) etwas anderes als ASCII-oder UTF8. Wenn Ihr eine shell, was bedeutet echo $LANG sagen? Wenn Sie Lesen der Ausgabe in einem text-editor, versuchen Sie herauszufinden, welcher Zeichensatz benutzt wird. Sind Sie mit irgend etwas im Programm wie use locale oder use Encode? Wenn möglich, bitte zeigen Sie das vollständige Programm.
  • Bitte zeigen Sie den rest von Ihrem Programm
Schreibe einen Kommentar