What if you use backticks (`ldapsearch`) instead of system("ldapsearch"). When I put mail: email@example.com in a file and called @array = `cat file`, your script worked, but not when using @array = system("cat file").
in reply to Re^4: Problem with ampersand and regex
in thread Problem with ampersand and regex
Take a look at What's the difference between Perl's backticks, system, and exec?. The system() call returns the exit status, not the actual result (STDOUT) of the command like the backtick operator does.