Variablen werden nicht als solche erkannt
Christof
- cgi
Hallo erstmal!
Ich habe folgendes kleines Problem.
In einer txt datei steht der HTML Quellcode für eine Ausgabe per Perl. Das ganze sieht dann folgendermaßen aus:
#$template ist die txt datei!
open(SETUP, "<$template") || die "Datei nicht gefunden";
@template_file = <SETUP>;
close(SETUP);
$name="Janzen";
print header ();
foreach (@template_file) {
print $_;
}
in dem Quelltext ist auch folgende Zeile enthalten:
<input type="text" name="name" value="$name">
Normalerweise würde die Variabler $name durch "Janzen" ersetzt, aber das geschieht leider nicht. Ich hab noch nicht verstanden, warum das so ist, und wie ich das beheben könnt.
Mfg Christof
Hallo erstmal!
Ich habe folgendes kleines Problem.
In einer txt datei steht der HTML Quellcode für eine Ausgabe per Perl. Das ganze sieht dann folgendermaßen aus:
#$template ist die txt datei!
open(SETUP, "<$template") || die "Datei nicht gefunden";
@template_file = <SETUP>;
close(SETUP);
$name="Janzen";
print header ();
foreach (@template_file) {
print $_;
}
in dem Quelltext ist auch folgende Zeile enthalten:
<input type="text" name="name" value="$name">
Normalerweise würde die Variabler $name durch "Janzen" ersetzt, aber das geschieht leider nicht. Ich hab noch nicht verstanden, warum das so ist, und wie ich das beheben könnt.
Mfg Christof
Hi,
so geht das auch nicht. Du hast den File Inhalt in einem Array gespeichert
und versuchst hier etwas zu ersetzen.
Schnelle Lösung, evtl. nicht die eleganteste:
Du durchsuchst den Array nach dieser Zeile und tauschst die
Zeile aus.
Gruß
Jürgen Schneider
Hallo erstmal!
Ich habe folgendes kleines Problem.
In einer txt datei steht der HTML Quellcode für eine Ausgabe per Perl. Das ganze sieht dann folgendermaßen aus:
#$template ist die txt datei!
open(SETUP, "<$template") || die "Datei nicht gefunden";
@template_file = <SETUP>;
close(SETUP);
$name="Janzen";
print header ();
foreach (@template_file) {
print $_;
}
in dem Quelltext ist auch folgende Zeile enthalten:
<input type="text" name="name" value="$name">
Normalerweise würde die Variabler $name durch "Janzen" ersetzt, aber das geschieht leider nicht. Ich hab noch nicht verstanden, warum das so ist, und wie ich das beheben könnt.
Mfg Christof
Hi,
so geht das auch nicht. Du hast den File Inhalt in einem Array gespeichert
und versuchst hier etwas zu ersetzen.
Schnelle Lösung, evtl. nicht die eleganteste:
Du durchsuchst den Array nach dieser Zeile und tauschst die
Zeile aus.
Gruß
Jürgen Schneider
Naja, schnelle möglichkeit wäre es ja, aber es ist halt nicht nur eine Variable sondern ein paar mehr..... Keine andere möglichkeit
Hallo Christof und Jürgen,
...
Schnelle Lösung, evtl. nicht die eleganteste:
Du durchsuchst den Array nach dieser Zeile und tauschst die
Zeile aus.
oder so:
foreach (@template_file) {
s/$(\w+)/${$1}/g;
print $_;
}
(aus: Perl Cookbook)
Gruß
Christoph
Hallo Christof und Jürgen,
...
Schnelle Lösung, evtl. nicht die eleganteste:
Du durchsuchst den Array nach dieser Zeile und tauschst die
Zeile aus.
oder so:
foreach (@template_file) {
s/$(\w+)/${$1}/g;
print $_;
}
(aus: Perl Cookbook)
Gruß
Christoph
Vielen vielen Dank! Hat geklappt. Vielleicht sollte man sich das Buch doch mal beschaffen, auch wenn's so teuer ist....
Christof
Hallo Christof und Jürgen,
...
[...]
(aus: Perl Cookbook)
Gruß
Christoph
Vielen vielen Dank! Hat geklappt. Vielleicht sollte man sich das Buch doch mal beschaffen, auch wenn's so teuer ist....
Christof
Ich möchte Dir und allen anderen Perl-Interessierten hier im Forum das Perl CD Bookshelf empfehlen. (Nein, ich habe von dieser Empfehlung keinerlei Vorteile!)
http://www.oreilly.com/catalog/perlcdbs/
ASIN: 1565924622
Bei amazon.de für EUR 66,47 (DM 130,00) zu haben - noch: wird nicht mehr gedruckt.
http://www.oreilly.com/catalog/perlcdbs2/
ISBN: 0596001649
Bei amazon.de für EUR 95,18 (DM 186,16) zu haben, oder beim Buchhändler deiner Wahl.
Tux2000
Hallo!
[...]
aber das geschieht leider nicht. Ich hab noch nicht verstanden, warum das so ist, und wie ich das beheben könnt.
..das liegt daran, daß du eine Text-Datei-einliest - diese wird aber nicht durch den Perl-Interpreter geschickt - also an welcher Stelle soll die Variableninterpolation (Ersetzen von $name durch "Janzen") stattfinden?
Gruß Sven
Hallo!
[...]
aber das geschieht leider nicht. Ich hab noch nicht verstanden, warum das so ist, und wie ich das beheben könnt.
..das liegt daran, daß du eine Text-Datei-einliest - diese wird aber nicht durch den Perl-Interpreter geschickt - also an welcher Stelle soll die Variableninterpolation (Ersetzen von $name durch "Janzen") stattfinden?
Gruß Sven
Tja, die Datei soll ja anschließend im Browser ausgegeben werden. Da spätestens sollte die Variable ersetzt sein :-)