in reply to Newbie Regex Problem

As others have noted, * is greedy, matching everything it can, which in your case of . means as many characters as possible (except newlines, see perlretut for the details).

You can either make your .* match non-greedily, using .*? which makes it match the shortest substring that makes the overall match work, or you can explicitly exclude the , character from the part you want to match:

if ($test =~ m#LDAP://CN=([^,]*)#) { }
Note that I used m# ... # syntax instead of "" quotes, since using a plain string as a regex literal can cause additional headaches, and using the usual // delimiters requires you to escape the / characters in your match. See the link for more information on perl's special quoting operators.

updated: forgot to add the * to [^,]*