Thread Resultat einer DB-Abfrage mit allen Variablen im Skript matchen/replacen (9 answers)
Opened by tx556 at 2014-08-20 18:07

Raubtier
 2014-08-21 12:24
#176937 #176937
User since
2012-05-04
1081 Artikel
BenutzerIn
[default_avatar]
2014-08-21T09:12:13 clms
2014-08-21T07:18:54 Raubtier
Neben meiner generellen Abneigung gegen eval($skalar) kommt noch dazu, dass man interessante Informationen doch oft gar nicht als lokale (als globale schon gar nicht!) "einfache" Variablen vorliegen hat, sondern oft befinden sich interessante Werte doch in Objekten, d.h. einzelne $var im String wären dann durch $object->method() zu ersetzen.

Das war nicht die Fragestellung.


Naja, ich finde es nur höchst merkwürdig, dass die Variablen alle einfach so im lokalen Scope der DB-Abfrage vorliegen sollen. Das weist auf schlechten Stil hin.

Wenn ich erst
Code (perl): (dl )
1
2
my $db_variable1 = $obj->irgendwas();
my $db_variable2 = $obj2->irgendwasAnderes();

schreiben muss, um dann in dem String aus der DB
Code: (dl )
$db_variable1
und
Code: (dl )
$db_variable2
zu ersetzen, dann kann ich das auch gleich mit einem simplen
Code: (dl )
s///
aus dem DB-Ergebnis tun.

Mir fällt kein Szenario ein, wo man das haben möchte, was hier gefragt war. Es verursacht nur Probleme, wenn man so programmiert. Was ist zum Beispiel, wenn man refaktorisiert und Variablen umbenennt oder gar irgendwie in ein Objekt einkapselt? Dann ist sofort das Template kaputt! Das Template sollte aber im besten Fall möglichst unabhängig von dem Programmcode sein.

View full thread Resultat einer DB-Abfrage mit allen Variablen im Skript matchen/replacen