Here in 2019, it turns out someone had used this same script to pull email addresses from our AD server as well. It wouldn't work on CentOS7 so following the troubleshooting tips from poj, I added the line:
print "mesg = ".Dumper($mesg);
It gave me this message:
'errorMessage' => 'Can\'t use string ("proxyAddresses") as an ARRAY re
+f while "strict refs" in use at /usr/share/perl5/vendor_perl/Convert/
+ASN1/_encode.pm line 269, <DATA> line 747.
So I changed attr => "proxyAddresses
to attr => "@proxyAddresses"
and the script dumped all email addresses to a file.
although it generated the following warnings:
Possible unintended interpolation of @proxyAddresses in string at ./p.
+pl line 84, <DATA> line 747.
Name "main::proxyAddresses" used only once: possible typo at ./p.pl li
+ne 84, <DATA> line 747.