Variablen parsen
Thomas
- perl
Hi,
wenn ich folgendes mache:
...
$name="Thomas";
open (in,"template.html");
@data=<in>;
close in;
print @data;
...
und mein Template sieht etwa so aus:
<html>
<body>
Hallo $name
</body>
</html>
Dann gibt das Script wirklich "$name" aus, anstatt "Thomas".
Das ist sicher aus Sicherheitsgründen so, oder?
Gibt es eine Möglichkeit, daß direkt wie bei der Vorgehensweise ohne Datei zu ersetzen?
Gruß
Thomas
Sowas geht glaub ich nur mit patternmatching, also nicht wirklich
so das die variable eingefügt wird. und dann auch nur zeilenweise:
$name="Thomas";
open (in,"template.html");
while(<in>)
{
$line = $_;
$line =~ s/$name/$name/g;
print $line;
}
close in;
Hier wird $name als String durch den inhalt der variable $name
ersetzt. genauso könnte in der datei auch __pluffz__ stehen,
dann würde die zeile
$line =~ s/__pluffz__/$name/g;
lauten.
gruß
Achim
Hallo Thomas,
schau Dir mal das Modul HTML::Template an (zu finden bei CPAN).
greets
myMojito