Maskierung einer Raute
Siechfred
- perl
Guten Abend,
ich habe folgendes Problem. Ich möchte mit folgender Anweisung Zeichen HTML-gerecht in ASCII umwandeln:
$mystr =~ s/-/-/g;
^ da liegt das Problem, denn selbst mit einem Backslash interpretiert Perl die Raute nicht als Zeichen sondern als Einleitung für einen Kommentar, sodass die ganze Anweisung in die sprichwörtliche Hose geht. Hat jemand eine Idee?
mfg Torsten
Hallo,
$mystr =~ s/-/-/g;
^ da liegt das Problem, denn selbst mit einem Backslash interpretiert Perl die Raute nicht als Zeichen sondern als Einleitung für einen Kommentar, sodass die ganze Anweisung in die sprichwörtliche Hose geht.
Wie kommst du darauf? Hast du es schon mal ausprobiert?
Ich befürchte, dein Editor spielt dir einfach einen Streich.
Bei mir funktioniert es sogar, wenn ich # nicht maskierte.
$xNeTworKx.
Guten Abend,
Wie kommst du darauf? Hast du es schon mal ausprobiert?
Ja.
Ich befürchte, dein Editor spielt dir einfach einen Streich.
Leider nein, denn wenn ich die Raute weg lasse, funktioniert die Anweisung, mit Raute jedoch nicht.
Bei mir funktioniert es sogar, wenn ich # nicht maskierte.
Das kann ich mir nicht erklären ;-)
mfg Torsten
hi Siechfred (oder Torsten?)
Bei mir funktioniert es sogar, wenn ich # nicht maskierte.
Das kann ich mir nicht erklären ;-)
den zwinkersmilie versteh ich jetzt nicht...
egal, aber bist du dir sicher, dass es an der raute liegt?
geht bei dir nicht mal sowas wie das folgende?
#![perlpfad] -w
use strict;
defined($ARGV[0]) || die "param fehlt";
print "da is ne raute drin\n" if($ARGV[0]=~/#/);
prost
seth
N'abend,
hi Siechfred (oder Torsten?)
Wie du willst.
den zwinkersmilie versteh ich jetzt nicht...
Sollte eigentlich ;-( werden...
#![perlpfad] -w
use strict;
defined($ARGV[0]) || die "param fehlt";
print "da is ne raute drin\n" if($ARGV[0]=~/#/);
Ich möchte ein Script bauen, das einen eingegebenen Text in ASCII umwandelt. Also dachte ich in meinem jugendlichen Leichtsinn, dass ich über Suchen und Ersetzen die einzelnen Zeichen durch den dazu gehörenden HTML-gerechten Code ersetze, also z.B. das "-" durch "-". An diesem Punkt liefert das Script aber ein "!". Verwende ich statt "-" nur "&45" funktioniert es und das Script liefert als Ergebnis "&45". Könnte es vielleicht am OS liegen (WinXP)?
mfg Siech*ratlos*fred AKA Torsten
Hi,
Ich möchte ein Script bauen, das einen eingegebenen Text in ASCII umwandelt.
Und was hat ASCII mit &#xx zu tun?
Also dachte ich in meinem jugendlichen Leichtsinn, dass ich über Suchen und Ersetzen die einzelnen Zeichen durch den dazu gehörenden HTML-gerechten Code ersetze, also z.B. das "-" durch "-".
Ach so, Du meinst HTML-Entities. Die sehen aber anders aus, die enden nämlich mit einem ;
Dir ist aber auch klar, daß ein Browser diese Entities wieder in die eigentlichen Zeichen umsetzt?
Daß es geeignetere Methoden als 256 Ersetzungen (für alle Zeichen) gibt, ist dir auch klar?
perldoc -f ord
wäre da z.B. ein Ansatzpunkt.
Ansonsten, wenn Du bei Deiner Variante bleiben willst, sollte aber # das Problem lösen...
cu,
Andreas
N'abend,
Und was hat ASCII mit &#xx zu tun?
Ach so, Du meinst HTML-Entities. Die sehen aber anders aus, die enden nämlich mit einem ;
Mea culpa, bring die ganzen Begriffe immer durcheinander.
Dir ist aber auch klar, daß ein Browser diese Entities wieder in die eigentlichen Zeichen umsetzt?
Ist es.
Daß es geeignetere Methoden als 256 Ersetzungen (für alle Zeichen) gibt, ist dir auch klar?
perldoc -f ord
wäre da z.B. ein Ansatzpunkt.
Werde mich mal danach umschauen.
Ansonsten, wenn Du bei Deiner Variante bleiben willst, sollte aber # das Problem lösen...
Tut's leider nicht, schon probiert.
mfg Siechfred
Hallo,
Also ich habe das auch mal ausprobiert und das geht problemlos auch ohne \ vor dem #.
perldoc -f ord
wäre da z.B. ein Ansatzpunkt.
perldoc CGI und da die Funktion escapeHTML() wäre noch ein bequemerer.
Grüße
Daniel