Danny: externe txt datei über variable einfügen

Beitrag lesen

hi. also ich würds ganz einfach so machen:

open(DATEI,"<header_template.txt");
@header = <DATEI>;
close(DATEI);

open(DATEI,"<footer_template.txt");
@footer = <DATEI>;
close(DATEI);

dann noch zwei funktionen, eine &print_header() und eine &print_footer().
print header sieht dann etwa so aus:

sub print_header {
for (@header) {
  # hier könntest du die zeilen noch irgendwie parsen, sehr nützlich für templates.
  print $_;
}
}
die print_footer() dann natürlich so:
sub print_footer {
for (@footer) {
  # parsing blabla
  print $_;
}
}

im script rufst du dann einfach &print_header() oder footer auf wann immer du sie brauchst.
statt die templates in einer datei auszulagern kannst du natürlich auch alles gleich in die funktionen schreiben.
z.b.
sub print_footer {
print <<END;
<html>
<head>
blahblah
</head>
<body bgcolor=black text=white>
END
}

das END darf dabei nicht eingerückt sein, da der << operator den endstring am anfang der zeile sucht.. (danach dürfen auch keine zeichen mehr kommen soweit ich weiß)

ich hoffe das hilft dir weiter :)

danny

hallo forum,
für ein perlprogramm, in dem es um das bestellen bzw. abbestellen einen newsletters geht, würde ich gerne eine externe txt datei über eine variable in das perl script einfügen.

Hintergrund dafür ist, daß es eine vielzahl von if/else verzweigungen gibt, und ich das script heftig aufblähen würde, wenn ich jedesmal den kompletten html code in das script einfügen müßte.

Deshalb würde ich gerne die variable $header und $footer definieren, um dann bei den abfragen die variablen entsprechend einzufügen. Mir ist aber nicht klar, wie ich die variablen definieren muß, denn schließlich muß ich ja einen pfad zur txt datei angeben (liegt mit im cgi-bin)und wenn ich die variable über print $header ...
einfügen würde, würde das script ja den pfad ausgeben und nicht den inhalt der txt datei. Wäre nett, wenn mir jemand weiterhelfen könnte.

Ich hoffe, ich konnte verständlich ausdrücken, was ich meine.
Vielen dank für die hilfe
gruß ralf