genervter Perl-Neuling: habe ich was im Script vergessen oder den Perl falsch installiert?

Hallo Ihr,

Seit einigen Tagen muss ich mit PERL arbeiten. Jetzt habe ich schon die ganze Zeit rumprobiert, bis das Teil auf dem IIS endlich funktionierte...

Nun stehe ich vor dem nächsten Problem und langsam verzweifel ich.

Ich muß jetzt in jedem Perl-Script am Anfang ein:
  use CGI qw(:standard escapeHTML);
und als erstes print ein:
  print header();
angeben.

Kann man das nicht automatisch machen lassen? Ich habe immer wieder Perl-Scripte gefunden, wo diese Zeilen nicht enthalten sind und nachdem ich x-tausend verschiedensprachige Dokus gelesen habe (wenig übertrieben ausgedrückt) und alles mögliche probiert habe, bis es endlich funktioniert hat, glaube ich, dass ich das irgendwie ein wenig beschädigt habe...

nächstes Problem:

Ich teste jetzt einige Scripte und bekomme immer wieder verschiedene Fehlermeldungen, mit denen ich nichts anfangen kann.

Can't locate object method "new" via package "LWP::UserAgent" at
  c:\Inetpub\wwwroot\cgi-bin\test33.pl line 2.

Wieso kennt er das "new" nicht??

Ich glaube, ich krieg die Krise mit diesem Teil... Warum schwärmen alle von Perl??? Das werde ich wohl, nie verstehen ;-(

Gruß G.P.N.

  1. <hi />

    Hast du ein #!usr/bin/perl in der 1. Zeile ?
    Und stell doch deinen Code mal rein !

    <Bernhard />

    1. Hallo,

      #!usr/bin/perl

      Ich kann es zwar rein machen, aber bringen wird das absolut nichts...

      • ich habe noch nie einen IIS auf einem UNIX-System gesehen... ;-)

      ich habe es mit
        #!c:\perl\bin\perl.exe %s %s
      probiert.
      Resultat: Keine Änderung

      mein Script:
        use CGI qw(:standard escapeHTML);
        $ua = LWP::UserAgent->new();
        $request = http::Request->new('GET',$ENV{'QUERY_STRING'});
        print header();
        print "Das wurde mit der URL mitgegeben: "
        print $ENV{'QUERY_STRING'};
        print $request;

      Die meisten werde sich merken, dass ich in dieser Version nur
        $ua = LWP::UserAgent->new();
        $request = http::Request->new('GET',$ENV{'QUERY_STRING'});
        print $request;
      zusätzlich eingefügt habe. (ohne das funktioniert es, tut aber noch nicht das, was ich will...)

      Gruß G.P.N.

      1. Hallo,

        Du solltest Dir mal die Sache mit dem Einbinden von Moduln genauer ansehen.

        Willst Du etwas von 'LWP::UserAgent' verwenden wie etwa
          $ua = LWP::UserAgent->new();
        dann mußt Du Perl auch klar machen, daß Du das Modul verwenden willst.

        das geschieht wieder mit
           use LWP::UserAgent;
        Fehlt diese Zeile dann hagelt Fehlermeldungen.

        Das gleiche gilt für 'HTTP::Request'.

        use CGI;
        ist in Deinem Falle einfach nicht genug.

        In den mitgelieferten Dokumentationen der Module steht eigentlich immer genau drin wie Du das Modul in Perl einbinden kannst.
        also zuerst 'use' verwenden, dann erst das ganze auch benutzen.

        und noch was: Perl ist case-sensitive, deshabl wirst Du mit 'http::Request' nicht weit kommen, es heiß nämlich 'HTTP::Request'

        Ich glaube, ich krieg die Krise mit diesem Teil... Warum schwärmen alle von Perl??? Das werde ich wohl, nie verstehen ;-(

        Weil Perl eine sehr gute Sprache ist, mit vielen guten Features. Nur... Ihr mangelt es genauso wie jeder anderen mir bekannten Programmiersprache an heuristischen und intuitiven Fähigkeiten. Leider ist sie auch nicht wirklich in der Lage zu erahnen, was der Programmierer _eigentlich_ will, um dann den Code selbständig so zu modifizieren, daß auch das gewünscht passiert. Perl ist zwar nah dran, aber .... ;-)

        Also bleibt Dir  nichts anderes übrig, als Dich mit der Syntax von Perl auseinanderzusetzen. Es ist nun mal so, daß jede Sprache seine eigenen Konzepte mit sich bringt, und nur wenn, Du Dich daruaf einläßt, dann hast Du auch Erfolg damit.

        Ich hoffe die Krisen der nächsten Zeit lassen Dich nicht resignieren.

        Grüße
           Klaus

        1. hi,

          Also bleibt Dir  nichts anderes übrig, als Dich mit der Syntax von Perl auseinanderzusetzen. Es ist nun mal so, daß jede Sprache seine eigenen Konzepte mit sich bringt, und nur wenn, Du Dich daruaf einläßt, dann hast Du auch Erfolg damit.

          Ich hoffe die Krisen der nächsten Zeit lassen Dich nicht resignieren.

          Grüße
             Klaus

          glaub ihm, er hat mir schon ne menge geholfen!

          danke klaus

          bye lars