CPAN: Daten mit Storable speichern

Beitrag lesen

@array_dessen_name_in_$_steht = @{$complete{$_}};

Huuuh, symbolischer Zugriff, wie gruselig. Das ist eine schlechte Praxis, ich rate ab.

Beat hat dir schon geraten, den die Datenstruktur bzw. den Zugriff darauf zu überdenken. Du solltest einfach eine Hashref benutzen, siehe Seite 55 in Modern Perl.

  
    $complete = {  
        foo => [qw(foo bar foo1 bar1)],  
        bar => [qw(foo2 bar2 foo3 bar3)],  
    };  

Dort, wo du früher @foo geschrieben hast, schreibst du stattdessen @{ $complete->{foo} }, analog @bar zu @{ $complete->{bar} }. Du kannst über die Namen sehr einfach iterieren.

  
    frob_array(@{ $complete->{$_} }) for qw(foo bar);  

Pro-Tipp zum Schluss: immer die *n*store-Variante benutzen, siehe http://p3rl.org/Perl::Critic::Policy::Storable::ProhibitStoreOrFreeze