Johannes Röckert: Array mit Assoziativem Array

Beitrag lesen

Hallo Reinhard,

das Array ist in der Tat falsch angelegt.

Ein Array in Perl ist grundsätzlich ein Array des Datentyps Scalar. Deswegen kann auch kein Array-Element ein (assoziatives) Array sein. Du löst das Problem, indem Du Referenzen auf den Hash erstellst, da Referenzen Skalare sind:

my @allUsers;
my $user;

my %tst1=("aaa" => "111", "bbb" => "222");
push(@allUsers, %tst1);
%tst1=("aaa" => "333", "bbb" => "444");
push(@allUsers, %tst1);

foreach $user (@allUsers) {
 print $user->{aaa}.'; '.$user->{bbb}."\n";

while (($k, $v)=each(%{$user})) {
  printf "$k = $v\n";
 }
}

Gruß,

  • Johannes