Christian Weissengruber: Anfangsschwierigkeiten

Einen wunderschoenen guten Morgen
(wobei das wunderschoene schon wieder vorbei ist)
ich hab seit gestern ActivePerl-5.6.0.615 auf meinem NT-Server
das Ding hat sich wunderbar insatlliert, *.pl und *.plx sind in der mmc eingetragen, die tests aus der commandline funktionieren, die faqs sagen zu meinem Problem auch nix, es sollte also alles funktionieren.
bei den samples im Browser ist dann das Wunderschoene schon vorbei:
folgendes ist eines von vielen moeglichen Ergebnissen.
$Response->writeblock(0); for ($i = 3; $i < 8; $i++) { -Fehler '80004005'

Can't call method "writeblock" on an undefined value.

?

ich glaub, da ist irgendwo doch noch ein Raedchen zu drehen.
Kann mir jemand einen Tip geben?
Gruss
Christian

  1. haste denn überhaupt nen webserver installiert, wie zum beispiel apache oder omnihttpd?

    schmaidt

    1. haste denn überhaupt nen webserver installiert, wie zum beispiel apache oder omnihttpd?

      Hallo, na klar der IIS 4 laeuft hier (WINNT4.0 SP6, keine FP-Extensions), bis jetzt hab ich allerdings nur mit ASP zu tun gehabt.
      Gruss
      Christian

  2. hallo,

    $Response->writeblock(0); for ($i = 3; $i < 8; $i++) { -Fehler '80004005'

    Can't call method "writeblock" on an undefined value.

    ich weiß nicht wie das script das Objekt '$Response' erzeugt, aber anscheinend hat das nicht funktioniert.
    Die Fehlermeldung kommt immer, wenn das Objekt nicht erzeugt worden ist.
    Es sollte irgendetwas in der Art
    $Response = new BLABLA ; #( wahrscheinlich CGI oder DBI oder was weiß ich)
    vorkommen.
    Hier muß noch eine Fahlerbehandlung rein.
    etwa
    $Response = new BLABLA or die " Nixda mit new BLABLA";

    grüße
    klaus

    1. Hallo Klaus,
      der simpelste code der den Error erzeugt ist folgender:

      <%@ LANGUAGE = PerlScript %>
      <HTML>
      <HEAD>
      <TITLE>PerlScript Hello World!</TITLE>
      </HEAD>
      <BODY BGCOLOR="#FFFFFF">
      <H1>PerlScript Hello world!</H1>
      <P>
      <SCRIPT LANGUAGE="PerlScript" RUNAT=Server>
      $Response->write("Hello world!");
      </SCRIPT>
      </BODY>
      </HTML>

      dann lefert allerdings die msgbox des IE
      "Can't call method "write" on an undefined value."

      also glaub ich (von Perl vollkomen unvoreingenommen)
      hier stimmt generell was (noch) nicht.
      aber was?
      Gruss
      Christian

      1. Hallo Klaus,
        der simpelste code der den Error erzeugt ist folgender:

        <%@ LANGUAGE = PerlScript %>
        <HTML>
        <HEAD>
        <TITLE>PerlScript Hello World!</TITLE>
        </HEAD>
        <BODY BGCOLOR="#FFFFFF">
        <H1>PerlScript Hello world!</H1>
        <P>
        <SCRIPT LANGUAGE="PerlScript" RUNAT=Server>
        $Response->write("Hello world!");
        </SCRIPT>
        </BODY>
        </HTML>

        dann lefert allerdings die msgbox des IE
        "Can't call method "write" on an undefined value."

        also glaub ich (von Perl vollkomen unvoreingenommen)
        hier stimmt generell was (noch) nicht.
        aber was?
        Gruss
        Christian

      2. hi,

        (ohje, da ist eben wieder mal beim Lesen falsch geklickt worden, bitte das andere posting ignorieren, steht eh nix drin)

        ich denke, du mußt dir deine Perl-Installation und deinen Webserver genauer ansehen. Wenn du dir Perl von ActiveState geholt hast, hast du sehr umfangreche Dokumentationen auch zu Perl-Script. Da kannst du auch nachlesen, mit welchem Server du welche Konfigurationen vornehmen mußt, damit so etwas läuft.

        Wenn dein Perl aber mod_perl ist, kannst du solche Scripts nicht ausführen.

        Christoph S.

      3. Hi!

        <SCRIPT LANGUAGE="PerlScript" RUNAT=Server>
        $Response->write("Hello world!");
        </SCRIPT>

        Nun, Perl ist im Gegensatz zu Basic case-sensitive, und so ist $Response was anderes als $response. Und wenn es eine variable (noch) nicht gibt, ist sie in Perl undefined.
        Jetzt stellt sich natuerlich die Frage, wie wird $Response denn nun richtig geschrieben? Ich dachte eigentlich auch immer eben so, wie Du's da hast, aber scheinbar doch nicht? Musst Du wohl mal ein bisschen probieren (genauso dann hinterher mit write).

        dann lefert allerdings die msgbox des IE
        "Can't call method "write" on an undefined value."

        Ach halt... Die msgbox des **IE**? Also wird das erst im Browser ausgefuehrt? Dort gibt es $Response ja sowieso nicht. Dann funktioniert wohl das RUNAT=Server nicht? Vielleicht liegt der Fehler in der Richtung. Da Du am Anfang die Zeile <%@ LANGUAGE = PerlScript %> hast, sollte es reichen, wenn Du den Perlcode in <% %> einschliesst.

        HTH && So long

        1. dann lefert allerdings die msgbox des IE
          "Can't call method "write" on an undefined value."

          Ach halt... Die msgbox des **IE**? Also wird das erst im Browser ausgefuehrt? Dort gibt es $Response ja sowieso nicht. Dann funktioniert wohl das RUNAT=Server nicht? Vielleicht liegt der Fehler in der Richtung. Da Du am Anfang die Zeile <%@ LANGUAGE = PerlScript %> hast, sollte es reichen, wenn Du den Perlcode in <% %> einschliesst.

          hallo und Danke,
          das Ding liefert jetzt keine Fehler mehr, allerdings auch noch keinen output:
          <%@ LANGUAGE = PerlScript %>
          <HTML>
          <HEAD>
          <TITLE>PerlScript Hello World</TITLE>
          </HEAD>
          <BODY BGCOLOR="#FFFFFF">
          <H1>PerlScript 1</H1>
          <%
          $Response->write("Hello world!");
          %>
          </BODY>
          </HTML>
          das kommt glaub ich einem Forschungsauftrag fuer mich gleich.
          Gruss
          Christian