my %lookup; while (<$LDIF>) { my ($dn) = /^dn: (.*)$/m; my ($samACCOUNTNAME) = /^samACCOUNTNAME: (.*)$/m; $lookup{$dn} = $samACCOUNTNAME if defined $dn and defined $samACCOUNTNAME; # only if both are found }