Struppi: Daten mit Storable speichern

Beitrag lesen

@foo = ("foo", "bar", "foo1", "bar1");
@bar = ("foo2", "bar2", "foo3", "bar3");

%complete = (foo => @foo, bar => @bar);

open (DB, ">db.db");
store_fd(%complete, *DB);
close (DB);


>   
> Und zum Einlesen:  
>   
> ~~~perl
  

> open (DB, "<db.db");  
> %complete = %{fd_retrieve(*DB)};  
> close (DB);  
>   
> @foo = %{$complete{"foo"}};  
> @bar = %{complete{"bar"}};  
> 

was mir auffällt (neben dem was Beat schon bemängelt):
du verwendest kein use strict?
Warum benutzt du Arrays, wenn du ein Hash hast?
Warum prüfst du nicht die Dateioperationen?

Das wird bei vielen Variablen recht unübersichtlich (vorallem beim dereferenzieren nach dem Einlesen). Über Vorschläge zur Übersichtlichkeitsoptimierung würde ich mich daher freuen! :D

Verwende einen eigenen Namespace zum einlesen und speichern der Daten.

Die get Funktion könnte dann z.b. so aussehen:

sub get{  
my $name = shift;  
my $ref = $complete{$name};  
return unless $ref;  
return wantarray ? %$ref : $ref;  
}  

Struppi.