Zum Inhalt springen

[perl] Problem mit dem Dumper


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen


$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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...