Markus: Stringausgabe mit "<" und ">"als Sonderzeichen

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

  1. 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

    1. 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

      1. $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.

    2. Hab das Problem in den Griff bekommen... Habt mir den fehlenden Gedankenanstoß gegeben!

      Vielen Dank...

      Markus

  2. 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.