##### Edit these variables ##### my $delim = "*!*"; my $attributes = "cn displayName employeeID extensionAttribute3 extensionAttribute1 mail mailNickname proxyAddresses userPrincipalName"; my $server = "server1"; my $basedn = "dc=mycorp,dc=com"; ################################ ...snip... $/ = ''; #Paragraph mode for input my @atts = split(/ /, $attributes); my $cmd = "ldapsearch $flags -h $server -b \"$basedn\" \"(mail=*)\" $attributes"; open(SEARCH, "$cmd |") or die "\nError: $!\n"; while() { my $line; foreach my $att (@atts) { $line .= lc(/^$att: *(.*)$/im ? $1 : '') . $delim; } } This is the data that ldapsearch returns: dn: CN=Connors\, Ralph,OU=Users,DC=mycorp,DC=com cn: Connors, Ralph displayName: Connors, Ralph mail: rconnors@mycorp.com employeeID: 1234567 proxyAddresses: MBX:1 proxyAddresses: smtp:rconnors@mailgw proxyAddresses: SMTP:rconnors@mycorp.com proxyAddresses: X400:c=US;a= ;p=mycorp;o=NA;s=Chastain;g=Robert; proxyAddresses: RFAX:Connors, Ralph@ userPrincipalName: rconnors@mycorp.com extensionAttribute1: 0012A extensionAttribute3: 1234567 mailNickname: rconnors