hi,
also mein problem:
(erklärung)
mein programm liest ca. 10 dateien aus, dann werden sie in einem array mit dem namen @inhalt gespeichert. das läuft alles in einer foreach-schleife ab, deswegen hat @inhalt nur den inhalt von der zuletzt ausgelesen datei. deswegen wird jeder inhalt in ein anderes array mit dem namen @neuerinhalt gepusht. jetzt hat @neuerinhalt den inhalt von allen dateien.
jetzt zu meinem problem:
das programm soll jetzt den inhalt von @neuerinhalt auf einem template erzeugen, aber es kommt immer diese fehlermeldung:
HTML::Template->param() : You gave me an odd number of parameters to param()! at shop.cgi line 36
wenn ich nun aber nur den @inhalt, also den letzten inhalt von der ausgelesen datei in den template->param() reinhau, dann wird es auf dem template angezeigt.
weis einer warum des so spinnt??
hier noch mein quelltext:
#!/usr/bin/perl -w
use strict;
use HTML::Template;
use CGI::Carp qw(fatalsToBrowser);
my $tmpl = new HTML::Template( filename
=> "../../templates/test.tmpl" );
my $file;
my @file;
my @inhalt;
my @neuer;
opendir(DIR, "../../user") or die $!;
@file = readdir(DIR);
closedir(DIR);
if(@file > 2) {
foreach $file (@file) {
if(-f "../../user/$file") {
open(FH, "<../../user/$file") or die $!;
flock(FH, 2);
@inhalt = <FH>;
close(FH);
push @neuer, @inhalt;
}
}
}
$tmpl->param( hier_her => @neuer );
print "Content-type: text/html\n\n";
print $tmpl->output;
danke im voraus