|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
Verwendung von "eval"
|
Seitenanfang |
| Hallo, ich bin Perl-Neuling und komme an einer Stelle nicht weiter, in der ich einen String aus einer Datenbank - der die Zeichen eines Hashes enthält - wieder als Hash verwenden möchte. Müßte das nicht mit der "eval"-Anweisung zu machen sein? Ich hatte es mit Varianten der Art: $hash = eval{$string} probiert, jedoch leider erfolglos. Kann mir jemand dabei helfen? Gruß, Ralf
Datum: 23.09.2005-14:58

|
re: Verwendung von "eval"
|
Seitenanfang |
| Also eval führt den code, der in $string steht nochmal aus. Da müsste dann also schon eine Anweisung stehen, die einen Hash baut. Ich denke, Du solltest die Hash-Daten per Data::Dumper stringifizieren und in die Datenbank legen, dann kannst Du sie mit Data::Dumper auch wieder "hashifizieren". Wenn Du mir ein wenig Beispielcode/Output gibst, kann ich Dir sicher auch ein Beispiel nennen. Gruss, svenXY
Datum: 23.09.2005-15:12

|
re: Verwendung von "eval"
|
Seitenanfang |
| Danke für Deine schnelle Antwort! Ich bearbeite fremden Quellcode weiter und derjenige tut genau das, was Du beschreibst: Er stringifiziert mit Data::Dumper und legt sie in eine Datenbank. Die Abfrage dieser Datenbank funktioniert, ich kann den String auslesen und die Data::Dumper-Komponente habe ich auch installiert. Ich wußte allerdings nicht, daß Data::Dumper auch in die Gegenrichtung funktioniert. Ich kann meinetwegen den folgenden String aus der Datenbank holen und ihn meinetwegen in einer Variable $string1 speichern: {'dx'=>'0.1','dy'='0.2'} Wie wird z.B. daraus wieder ein Hash?
Datum: 23.09.2005-15:29

|
re: Verwendung von "eval"
|
Seitenanfang |
eigentlich hattest Du es fast:
use Data::Dumper;my $string = "{'dx'=>'0.1','dy'=>'0.2'}"; my $bar = eval $string; print Dumper($bar);
ergibt:
$VAR1 = { 'dy' => '0.2', 'dx' => '0.1' };
Gruss, svenXY
Datum: 23.09.2005-15:48

|
Danke!
|
Seitenanfang |
| Also ich bin wieder einmal erstaunt, wieviel kleine syntaktische Unterschiede in Perl ausmachen. Jetzt schaue ich drauf und denke "Das ist ja einfach." Aber 2 Stunden lang ist es mir selbst nicht gelungen. Egal - haben Sie Dank! Gruß, Ralf
Datum: 23.09.2005-16:12

|
|

|

|

|
 |

|

|
|