Variable leer?
gant
- perl
0 Struppi
Hallo Forum
Ich versuche aus einer Datei zu lesen, die Zeilenlängen zu bestimmen und in einem Array zwischenzuspeichern. die daten aus dem array sollen danach in einem html-file die breite einer grafik modifizieren. sehe ich mir nun aber den code der html-seite an, so werden die entsprechenden attribute nicht dargestellt.
anbei n bischen code, damits verständlicher wird:
das cgi:
open(FILE,">b3.cfg");
@linesB3 = <FILE>;
close FILE;
$b3Length = scalar(@linesB3);
for ($r = 0;$r < ($b3Length -1) ;$r++) {
$b3[$r] = length($linesB3[$r]);
$b3g[$r] = eval(($b3[$r] - 1) * 10);
}
...
print <<"OUTPUT";
Content-type: text/html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
...
<td class="textNorm"><img src="http://169.63.138.156/sc.jpg" width="$wsg[24]"></td>
<td class="textNorm">$ws[24]</td>
---
der sourcecode der htm-seite:
...
<td class="textNorm"><img src="http://169.63.138.156/sc.jpg" width=""></td>
<td class="textNorm"></td>
...
---
Kann mir jemand sagen, was ich fasch mache? abgesehen von den variablen, wird die seite korrekt dargestellt...
danke und gruss
gant
Ich versuche aus einer Datei zu lesen, die Zeilenlängen zu bestimmen und in einem Array zwischenzuspeichern. die daten aus dem array sollen danach in einem html-file die breite einer grafik modifizieren. sehe ich mir nun aber den code der html-seite an, so werden die entsprechenden attribute nicht dargestellt.
anbei n bischen code, damits verständlicher wird:
das cgi:
wo ist
use strict;
use warnings;
Das sind die Module mit denen du solchen Fehlern auf die Schliche kommst. Bei CGI Anwendungen hilft dir vielleicht noch:
use CGI::Carp('fatalsToBrowser');
open(FILE,">b3.cfg");
woher weist du das die Datei hier offen ist?
open FILE '>b3.cfg' || die "Kann b3.cfg nicht öffnen, da $!";
und die Datei ist übrigens jetzt leer wegen '>'
@linesB3 = <FILE>;
@lines ist somit auch leer.
close FILE;
$b3Length = scalar(@linesB3);
for ($r = 0;$r < ($b3Length -1) ;$r++) {
$b3[$r] = length($linesB3[$r]);
$b3g[$r] = eval(($b3[$r] - 1) * 10);
}
Das @lines leer ist wird diese Schleife nie durchlaufen.
Übrigens gibt es in Perl mehrere Möglichkeiten Schleifen zu durchlaufen, in deinem Falle ist foreach die sinnvollste.
forach my $row(@lines)
{
....
}
und was eval da oben soll ist mir Schleierhaft.
...
print <<"OUTPUT";
print <<OUTPUT;
Kann mir jemand sagen, was ich fasch mache? abgesehen von den variablen, wird die seite korrekt dargestellt...
Mhh, dein Programmierkonzept ist überarbeitungsqwürdig.
wie gesagt use strict ist ein muss, use CGI ist für CGI-Programme eine enorme Arbeitserleichterung.
Struppi.