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
