perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 15
Click for quality!




12.02.2012 / 02:55

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragVerwendung 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

Beitragre: 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

Beitragre: 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

Beitragre: 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

BeitragDanke!
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

-






-
-