Stringausgabe mit "<" und ">"als Sonderzeichen
Markus
- perl
Hallo!
Habe folgendes Problem: Ich will bei einer Variablen folgende Zuweisung machen:
$datum= "http://.../ontology#datum";
Da aber "<" und ">" ja Sonerzeichen sind schluckt er mir das nicht!
Ich kann natürlich alternativ folgendes machen:
$datum= " < http://.../ontology#datum > ";
Dann habe ich aber im Ausgabestring zwischen den "<" und dem wirklichen Text ein Leerzeichen, dass ich da nicht haben möchte.
Meine Frage ist nun: wie kann ich direkt in den String die Sonderzeichen (OHNE SPACE dazwischen) reinschreiben?
Gruß Markus
Halihallo Markus
Habe folgendes Problem: Ich will bei einer Variablen folgende Zuweisung machen:
$datum= "http://.../ontology#datum";
Da aber "<" und ">" ja Sonerzeichen sind schluckt er mir das nicht!
Das ist nicht richtig. Diese Zuweisung, wie sie hier steht ist völlig
korrekt. Problematisch wird es nur bei '$', '@', '->', '%', ...
Falls keine Variablensubstitution stattfinden soll, ersetzte den
Doublequote einfach durch einen Singlequote:
$datum = 'http://.../ontology#datum';
Falls du XML verwendest:
a) sag das auch, das ist relevant!
b) ersetze < durch < und > durch >
Ich kann natürlich alternativ folgendes machen:
$datum= " < http://.../ontology#datum > ";
Bringt keinen Vorteil.
Viele Grüsse
Philipp
Nochmal:
Ich habe folgendes in meinem Skirpt stehen:
$datum1= "http://home.in.tum.de/~michels/ontology#datum1";
....
@Zeilen = ("");
open(MAILDAT, "<compleer.rdql");
while(<MAILDAT>)
{
push(@Zeilen,$_);
}
close(MAILDAT);
for(@Zeilen)
{
if(/SELECT/)
{
$_ =~ s/ $datum1\ / $datum1 /g;
print $_;
open(ABFRAGE, ">company.rdql"); # Datei zum Schreiben öffnen
print ABFRAGE $_;
close(ABFRAGE);
}
}
Er soll mir also in dem Eingabestring die Sequenz $datum1 durch den inhalt der gleichnamigen Variablen ersetzen. Dies macht er mir aber nicht wenn ich die Variable so wie oben belege. Nur wenn ich es mit " < http:.... macht geht das!
Markus
$datum1= "http://home.in.tum.de/~michels/ontology#datum1";
....
@Zeilen = ("");
Du solltest dir dringend angewöhnen mit use strict und warnings zu arbeiten.
Da du damit vor einem Haufen Fehler bewahrt wirst.
open(MAILDAT, "<compleer.rdql");
open immer prüfen:
open F, $file || die "Kann $file nicht öffnen, weil: $!";
while(<MAILDAT>)
{
push(@Zeilen,$_);
}
close(MAILDAT);
Das geht in eine Zeile:
my @zeilen = <MAILDAT>;
for(@Zeilen)
{
if(/SELECT/)
{$_ =~ s/ $datum1\ / $datum1 /g;
Es reicht:
s/ $datum1\ / $datum1 /g;
Das geht bei mir übrigens einwandfrei auch ohne escape sequenzen, wenn du die überflüssige Maskierung des Leerzeichens wegläßt:
my $datum= "http://home.in.tum.de/~michels/ontology#datum1";
my $test = 'bla: $datum ';
$test =~ s/ $datum /$datum/;
struppi.
Hab das Problem in den Griff bekommen... Habt mir den fehlenden Gedankenanstoß gegeben!
Vielen Dank...
Markus
Habe folgendes Problem: Ich will bei einer Variablen folgende Zuweisung machen:
$datum= "http://.../ontology#datum";
Da aber "<" und ">" ja Sonerzeichen sind schluckt er mir das nicht!
WER schluckt was nicht?
Bei mir wird brav der String in der DOS Box ausgegeben:
$datum= "http://.../ontology#datum";
print $datum;
Du meinst evtl. die Ausgabe im Browser http://selfhtml.teamone.de/html/allgemein/zeichen.htm
Struppi.