hi,
Ich werde wohl die 2 Schleifen nehmen und damit zufrieden sein, dass es nicht "einfacher" geht.
Definiere "Einfacher":
print "Prfe Artikel....\n\n";
foreach my $ak(keys %{$arts}){
print "Artikel-ID $ak:\n";
my $anz_in_arts = @{$arts->{$ak}->{name}};
my $treffer = scalar grep{$farbs->{$_}} @{$arts->{$ak}->{name}};
printf "Anzahl Farben: %u, davon Erlaubt: %u \n", $anz_in_arts, $treffer;
}
Prfe Artikel....
Artikel-ID 1:
Anzahl Farben: 3, davon Erlaubt: 3
Artikel-ID 2:
Anzahl Farben: 4, davon Erlaubt: 3
Artikel-ID 3:
Anzahl Farben: 1, davon Erlaubt: 0
Wobei auch hier implizit eine Iteration erfolgt. Eine explizit notierte Schleife tuts auch und ist übersichtlicher.
Hotti