You are doing something that we cannot see, the following works just fine:
use strict;
use warnings;
my %hoh ;
my ($dn,$mail) = qw( dn mail );
my @members = qw(foo bar baz);
my @email_addrs = qw( foo@here bar@there );
my $rec = {
DN => $dn,
MAIL => $mail,
MEMBERS => [ @members ],
PROXYADDRS => [ @email_addrs ],
};
$hoh{$dn} = $rec;
use Data::Dumper;
print Dumper \%hoh;
While it is great to isolate your problem, be sure and post a complete example. It helps with the rubber ducking process. :)
jeffa
L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)