Stringvariable in String
_Tom_
- perl
Hallo!
Ich habe schon überall gesucht, jedoch keine Antwort gefunden. Vielleicht kann mir hier jemand helfen!?
Folgendes Problem:
Ich lese in einem CGI aus einer Datei (beispiel.txt) einen Text ein und speichere diesen zeilenweise in einer Stringvariablen $text.
In der beispiel.txt sind nun aber schon Stringvariablen enthalten, die durch ihren entsprechenden an das CGI übergebenen Wert ersetzt werden sollen.
Gibt es dazu einen Befehl oder eine Funtkion?
Ich erhalte leider immer nur den reinen, unveränderten Text mit den Variablennamen.
Erläuterung:
beispiel.txt enthält "Hallo $name !".
Diese wird eingelesen in $text, so daß $text = "Hallo $name !"
Ausgabe soll: Hallo Franz !
Ausgabe ist: Hallo $name !
Oder bleibt mir nur, $text entsprechend zu behandeln?
Besten Dank vorab!
Gruß
_Tom_
Oder bleibt mir nur, $text entsprechend zu behandeln?
Besten Dank vorab!
Ich kann zwar kein perl, aber normalerweise brauchst Du nur mit einem bestimmten Zeichen den String mit der Variable konkatenieren.
z.b.:
$text = "Hallo " . $name . "!"
oder
$text = "Hallo " + $name + "!"
gruß aitee
Ich kann zwar kein perl, aber normalerweise brauchst Du nur mit einem bestimmten Zeichen den String mit der Variable konkatenieren.
z.b.:
$text = "Hallo " . $name . "!"
oder
$text = "Hallo " + $name + "!"
gruß aitee
Danke, aitee, aber mein Problem ist ein anderes! Vermutlich habe ich mein Problem nicht eindeutig genug erklärt:
Ich habe einen String, der eine Stringvariable enthält. Diese wird jedoch bei der Ausgabe des Strings nicht durch ihren Wert ersetzt.
Danke, aitee, aber mein Problem ist ein anderes! Vermutlich habe ich mein Problem nicht eindeutig genug erklärt:
Ich habe einen String, der eine Stringvariable enthält. Diese wird jedoch bei der Ausgabe des Strings nicht durch ihren Wert ersetzt.
Warum sollte er auch (du meinst interpoliert). Wie gesagt der einfachste Weg ist dies über ein HASH zu lösen.
Struppi.
Erläuterung:
beispiel.txt enthält "Hallo $name !".
Diese wird eingelesen in $text, so daß $text = "Hallo $name !"
Ausgabe soll: Hallo Franz !
Ausgabe ist: Hallo $name !
Am einfachste geht dies mit einem HASH:
my $t = 'test:$name. oder: $x';
my $vars = {
name =>" TEST",
x => 'was naderes',
};
print "vorher:$t\n";
$t =~ s/$(\w*)/$vars->{$1}/g;
print "nacher:$t\n";
Andernfalls musst du in der RegExp die Variabeln ($1 wäre der Name) ausführen, wie das geht weiß ich aber nicht.
Struppi.