in reply to Optimize my code with Hashes

%p1 = { 'dn' => 'st-eduid=ed988766,ou=People,dc=xyz,dc=com }

That's already wrong, use parenthesis instead:

%p1 = ( 'dn' => 'st-eduid=ed988766,ou=People,dc=xyz,dc=com )