Kai Diefenbach: Array auf einen Hash zuweisen

Beitrag lesen

Hallo Bernhard,

wenn ein Kunde mehrere Produkte bestellt hat werden diese in Arrays (@produkte, @nr, @menge, ...) abgelegt. Die Arrays werden ordnungsgemäss gefüllt, aber ich würde jetzt gerne folgendes machen:

// $produkte{$name} = @produkte;
// $nr{$name} = @nr;
// $menge{$name} = @menge;
// u.s.w.

ob das Ganze Sinn und Zweck hat musst Du entscheiden, so gehts zumindest mit Perl. Vielleicht kannst Du ja damit etwas anfangen:

#!perl -w

use strict;
my %produkte;

my $name='mueller';
my @produkte = qw/pc monitor maus/;
$produkte{$name} = [@produkte];       #referenz auf ary in hash

$name='meier';
@produkte = qw/drucker tastatur/;
$produkte{$name} = [@produkte];       #referenz auf ary in hash

#Ausgabe
foreach my $name (keys %produkte) {   #alle kunden durchgehen
    print "$name:\n";
    foreach my $produkt ( @{ $produkte{$name} } ) { # ary dereferenzieren
        print "$produkt\n";                         # und Produkte ausgeben
    }    
}

Weiteres zu diesem Thema findest Du unter:

perldoc perlref
perldoc perlreftut
perldoc perllol

<Bernhard/>

Gruss
   Kai