perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 29
Click for quality!




10.02.2012 / 09:24

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  CGI: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragAufrufen im Browser?
Seitenanfang
Hiho

Code
#!/usr/bin/perl -w

use CGI;
use CGI::Carp qw(fatalsToBrowser);
$cgi = new CGI;

$links = '/SAN/content/cgi-bin/links';
open (INFO, $links);
@lines = <INFO>;
close (INFO);
foreach $zeile (@lines)
{
print $cgi->header('text/plain'), "$zeile\n\n";

Also das Modul liest was von nem File ein und soll das dann halt im Browser ausgeben. Frage und zwar wie krieg ich es eigentlich hin das ein CGI script im Browser aufgerufen wird also nicht einfach ausgeführt wird innerhalb der Machine sondern halt als Seite ausgegeben wird oder wie ich es aufrufe o.O

Vielleicht noch was dazu ich hab alles auf einer VMware laufen

thx for help wenn welche kommt :P

Datum: 24.04.2006-11:44

Beitragre: Aufrufen im Browser?
Seitenanfang
Hi,

zunächst muss ich sagen, dass Du die Pragmas strict und warnings verwenden solltest. Diese sind bei der Entwicklung sehr hilfreich.

Den Perlschalter -w hat man vor der Version 5.006 verwendet. Dafür gibt es jetzt warnings. In ganz kritischen Fällen, wenn man beispielsweise Logikfehlern nicht auf die Spur kommt, kann man sogar noch "use diagnostics" einsetzen.

Dann sollte der Dokument-Header so ziemlich als erstes ausgegeben werden. Außerdem hast Du dessen Ausgabe in der foreach Schleife notiert. Dies bedeutet, dass er immer wieder ausgegeben wird.


#!/usr/bin/perl -w
use strict;
use warnings;
use CGI;
use CGI::Carp qw(fatalsToBrowser);

my $cgi = new CGI;

print $cgi->header(-type => 'text/plain');

my $file;
my $links = '/SAN/content/cgi-bin/links';
open (INFO, "<", $links) || die "Could not open $links, $!";
while (<INFO>) { $file .= $_; }
close (INFO);
print $file;


So müsste das eigentlich funktionieren.

http://search.cpan.org/~lds/CGI.pm-3.20/CGI.pm

Aso, noch etwas zu der while Schleife. Wenn Du mit den eingelesenen Daten der Textdatei nicht arbeitest sondern sie einfach nur ausgeben willst, dann macht es eigentlich keinen Sinn diese in einen Array zu laden, denn die Zeilenumbrüche sind auch nur Zeichen. Der Array verbrauch halt mehr Speicher als ein Skalar wegen der Indizierung.

Je nach Größe der Textdatei kann es aber auch sinnvoll sein diese zeilenweise an den Browser zu senden um Arbeitsspeicher zu sparen.


open (INFO, "<", $links) || die "Could not open $links, $!";
while (<INFO>) { print $_; }
close (INFO);

-uw

Datum: 26.04.2006-08:08

-






-
-