my @winver = Win32::GetOSVersion(); print "Windows 2000" if $winver[1] == 5 and $winver[4] == 2; #### # I'm guessing at the major Windows versions for 9x here, but it should be easy to test: print "Windows 95" if $winver[1] == 1 and $winver[4] == 1; print "Windows 98" if $winver[1] == 2 and $winver[4] == 1; print "Windows Me" if $winver[1] == 3 and $winver[4] == 1; #### my $version_lookup = [ [], # Win32s (not sure what goes here) [ undef, "Windows95", "Windows98", "WindowsMe" ], [ undef, undef, undef, "NT 3", "NT 4", "Windows 2000"] ]; my @winver = Win32::GetOSVersion(); printf "Operating System is %s", $version_lookup->[$winver[4]]->[$winver[1]]; #### print "I'm XP!!" if $winver[1] == 6 and $winver[4] == 2;