As someone pointed out on the ActiveState list, TieRegistry may not be very robust for dealing with registry objects.
There are cases where TieRegistry cannot access values under keys with "weird" names -- valid win32 Registry names, but names that have binary (Unicode) characters in them. It seems TieRegistry doesn't handle these cases reliably.
I haven't rewritten my program using the old Win32::Registry package, but if I do (pain in the "posterior" interface that it is...), it may be that we should *deprecate* TieRegistry in favor of the more native Registry interface (Ug). At the very least, it should be noted in the documentation that it may not be reliable for working with some registry keys (hey, it enumerated my entire "Classes" key just fine). Sigh.
As it is, TieRegistry certainly seems to have problems reliably accessing values under keynames where the keynames are not ascii strings. I tried adding the "use UTF8" to see if it would get around the problem, but when I write out registry dumps of the keys, and read them with a multi-byte supporting editor (gvim), I get different strings where the binary is, indicating that something in the registry export feature doesn't quite translate the keynames the same under UCS-16 v. UTF-8. :-(
Linda
Linda W wrote:
I decided to temporarily give up on the cygwin version of TieRegistry just to make some progress.