'The procedure entry point "Perl_suv_flags" was not found in the DLL "perl58.dll" '
The immediate thought is that "cpan" must be using a different perl to the one that's first in the path.
Are you sure there's no other perl on your system ?
Another odd thing is that I can't find Perl_suv_flags in any Windows perl dlls. Is that a copy'n'paste of the actual error message or could you have made a typo ?