I'm writing a script to check to make sure files in a given directory are localized to a given language. The way to check this is to look at the Language attribute returned by Win32::AdminMisc's GetFileInfo() function. I've stumbled across a runtime error, though, that crashes Perl quite spectactularly. It only happens on certain files, but I can consistently reproduce the error with Perl 5.005 or 5.6.1, on both Windows 2000 and Windows XP. I could get around it by keeping a list of known-troublesome-files, but that's kludgy as all get out.
Here's a minimal case that always crashes when it gets to catsrv.dll:
use strict;
use Win32::AdminMisc;
for (glob($ENV{SystemRoot}.'/system32/c*.dll')) {
print "$_ --";
my %attr;
Win32::AdminMisc::GetFileInfo($_, \%attr);
print join(' ',keys %attr), "\n\n";
}
Any ideas, anyone? I have an email in to Dave Roth, but I'm hoping I'm just missing something...
"One word of warning: if you meet a bunch of Perl programmers on the bus or something, don't look them in the eye. They've been known to try to convert the young into Perl monks." - Frank Willison