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
- Have fun unpacking the unicode string! If all you are interested in is the bias, try "LS64PLS64PL" for the template.
Updated my Win32::API, and updated #3 above. Thanks mothra
BTW, $bias returns 480 after making the above modifications (UTC -8)