Dukanos Geschrieben 29. September 2008 Teilen Geschrieben 29. September 2008 Hallo zusammen, ich habe ein kleines Problem mit dem Dumper in Perl. Ich versuche ein 4-Dimensionales Array zu serialisieren, was eigentlich auch recht gut funktioniert. Aber ich würde es auch gerne wieder auslesen können. Was wiederrum nicht funktioniert. Ich speichere den String in ein Textfile, lese dieses dann in einen String ein und versuche mit eval() das ursprüngliche Array wieder zu kriegen. #!/usr/bin/perl use strict; use Data::Dumper; my @arr = (['xyz', ['123.123.123.123', ['www.xyz.de'],['121312321.124']], 'asdf', ['111.111.111.111', ['www.sf.de', 'www.asf.de'], ['12321421.24', '1234234.234']]]); local $Data::Dumper::Purity = 1; my $string = Data::Dumper->Dump(@arr); print $string; @arr = eval $string; Von der gewünschten Funktionalität her hab ich das mal in dem kleinen Skript zusammengeschrieben. Ich habe also ein Array, dass ich mit Data::Dumper->Dump(@arr) in einen String speichere. Danach gebe ich ihn aus und hätte dann gerne das Array zurück. Der String sieht in diesem Fall so aus: $VAR1 = 'xyz'; $VAR2 = [ '123.123.123.123', [ 'www.xyz.de' ], [ '121312321.124' ] ]; $VAR3 = 'asdf'; $VAR4 = [ '111.111.111.111', [ 'www.sf.de', 'www.asf.de' ], [ '12321421.24', '1234234.234' ] ]; Wieso kann ich dann auf $arr[0][0] (xyz) nicht mehr zugreifen? Grüße Roland Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dukanos Geschrieben 30. September 2008 Autor Teilen Geschrieben 30. September 2008 Ok, das Problem hat sich erledigt... Ich verwende jetzt "Storable", damit funktionierts einwandfrei. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mr Unix Geschrieben 1. Oktober 2008 Teilen Geschrieben 1. Oktober 2008 $VAR1 = 'xyz'; $VAR2 = [ '123.123.123.123', [ 'www.xyz.de' ], [ '121312321.124' ] ]; $VAR3 = 'asdf'; $VAR4 = [ '111.111.111.111', [ 'www.sf.de', 'www.asf.de' ], [ '12321421.24', '1234234.234' ] ]; Wieso kann ich dann auf $arr[0][0] (xyz) nicht mehr zugreifen? Weil $arr[0] laut Data::Dumper nur 'xyz' enthaelt und keine Referenz. Wenn du eine weitere Referenz wolltest, muesstest du das ganze in [ ] packen. Wenn du mit Data::Dumper 'serialisieren' willst, musst du bei Binaerdaten aufpassen. Wenn du mit Storable Daten auslagern willst, dann solltest du aufpassen, dass die Daten nicht auf einer anderen CPU-Architektur eingelesen werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Dukanos Geschrieben 2. Oktober 2008 Autor Teilen Geschrieben 2. Oktober 2008 Es bleibt auf dem selben Server... Aber danke für den Hinweis :-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.