use Win32::API; my $tpl = 'V5Z128'; my $struc = pack $tpl, 5*4+128, (0) x 4, ''; my $GetVersionEx = new Win32::API('kernel32', 'GetVersionExA', ['P'], 'N'); $GetVersionEx->Call($struc); my($OSVersionInfoSize, $MajorVersion, $MinorVersion, $BuildNumber, $PlatformId, $CSDVersion) = unpack $tpl, $struc; print << "END"; major: $MajorVersion minor: $MinorVersion build: $BuildNumber platform: $PlatformId "$CSDVersion" END