A couple of things -
-
'u' in the pack template is UUEncoded text, I think you want 'U' for unicode, right? The template you are looking for should be "LU32PLU32PL"
-
Instead of " " x 32, pass a list of 32 32's, for example:
push @splist, 32 for (1 .. 32);
$tz_struct = pack("LU32PLU32PL", 0, @splist, $systime_struct,
0, @splist, $systime_struct, 0
+);
'P' and 'N' are constants defined in Win32::API, not strings. The third parameter to new Win32::API should be an anonymous list or an array reference, not a string literal
'GetTimeZoneInformation',
[P],
N
- Have fun unpacking the unicode string! If all you are interested in is the bias, try "LS64PLS64PL" for the template.
Update:
Updated my Win32::API, and updated #3 above. Thanks
mothra:-)
BTW, $bias returns 480 after making the above modifications (UTC -8)