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