Hallo allesamt,
ich sitze hier grade an meinem 2. Perlscript und verzweifle mal wieder... Das Script soll zwei Dateien öffnen:
a) linkvorlage.html - ein template für eine fertige seite, der aus der Variablen gezogen werden und angezeigt. Es ist eine normale HTML-Datei mit $overall$ anstelle des overallratings beispielsweise.
b) links.csv - eine excelltabelle als csv (colon seperated values) exportiert, daß die Datenfelder für linkvorlage.html enthält.
Beim aufruf dieses Skipts passiert herzlich wenig, außer den nachträglich eingesetzten Statusmeldungen. Zwar wird "print qq(habe temp geoeffnet)" erreicht, aber der Teil danach scheint irgendwo einen Fehler zu haben. Ich habe mittels des (hier auskommentierten) "#print @link;" überprüft, ob @link Daten enthält und die Seite wurde korrekt ausgegeben.
Warum ignoriert er bloss die
foreach $zeile (@link)
{
print $zeile;
}
?
Für jegliche Idee wäre ich extrem dankbar. Ich seh den Fehler einfach nicht.
Malte
--- volles skript ---
#!/usr/bin/perl
use CGI qw(:standard);
(c) 1999 malte koehrer (malte@koehrer.de)
detailed site view
@link = ("");
$linkvorlage = "linkvorlage.html";
$abfrage = new CGI;
-------- html header -------------
print qq(Content-type: text/html\n\n);
print qq(<html><head><title>links-navigator</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head><body bgcolor="#242c9d" link="#CCCCFF" text="#FFFFFF" vlink="#3333FF">);
read
open(fh_link, "<".$linkvorlage) die "kann linkvorlage.html nicht lesen\n";
while(<fh_link>) { push(@link, $_); }
close(fh_link);
#print @link;
-------- open csv, search site -------------
open(f_link, "<links.csv") die "kann links.csv nicht lesen\n";
@link = ("");
while(<f_link>)
{
@data_link = split(/;/,$_);
if($data_link[1] eq $abfrage->param('url')) { last; }
}
close(f_link);
print $data_link[1];
-------- take html template and insert content -------------
print qq(habe temp geoeffnet);
foreach $zeile (@link)
{
print $zeile;
}
-------- close table, end html -------------
print qq(</table>);
print qq(</body></html>);