you simply might need to Win32::OLE->Initialize to a different model ...
In cursorily reading this quote, here I really wish that you were not “Anonymous” (or that PM had not logged you out at the wrong instant ...), because I really would like to know more-specifically just what you meant by this. Intuitively, it seems like this is most likely to be the crux of the problem. After all, if the VB program works (although I notice that the two are not exactly the same at the end...), reason says that the Perl “equivalent” should do so, too. If the registry entry were bad, neither program would work...
So, “for those of us in the Peanut Gallery,” could you please elaborate on this? What are the choices here? How do they affect the program’s behavior? ...
(Let’s make this thread as one-stop-shopping useful as possible to the Gentle Readers three years hence...)