/usr/share/perl5/System/Info/Windows.pm is in libsystem-info-perl 0.057-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | package System::Info::Windows;
use strict;
use warnings;
use base "System::Info::Base";
our $VERSION = "0.050";
=head1 NAME
System::Info::Windows - Object for specific Windows info.
=head1 DESCRIPTION
=head2 $si->prepare_sysinfo
Use os-specific tools to find out more about the system.
=cut
sub prepare_sysinfo {
my $self = shift;
$self->SUPER::prepare_sysinfo;
$self->prepare_os;
my $reginfo = __get_registry_sysinfo ();
my $envinfo = __get_environment_sysinfo ();
for my $key (qw/__cpu_type __cpu __cpu_count/) {
my $value = $reginfo->{$key} || $envinfo->{$key};
$value and $self->{$key} = $value;
}
return $self;
} # prepare_sysinfo
=head2 $si->prepare_os
Use os-specific tools to find out more about the operating system.
=cut
sub prepare_os {
my $self = shift;
eval { require Win32 };
$@ and return;
my $os = $self->_os;
$os = "$^O - " . join " " => Win32::GetOSName ();
$os =~ s/Service\s+Pack\s+/SP/;
$self->{__os} = $os;
} # prepare_os
sub __get_registry_sysinfo {
eval { require Win32::TieRegistry };
$@ and return;
Win32::TieRegistry->import;
my $Registry = $Win32::TieRegistry::Registry->Open (
"", { Access => 0x2000000 });
my $basekey = join "\\" =>
qw(LMachine HARDWARE DESCRIPTION System CentralProcessor);
my $pnskey = "$basekey\\0\\ProcessorNameString";
my $cpustr = $Registry->{$pnskey};
my $idkey = "$basekey\\0\\Identifier";
$cpustr ||= $Registry->{ $idkey };
$cpustr =~ tr/ / /s;
my $mhzkey = "$basekey\\0\\~MHz";
$cpustr .= sprintf "(~%d MHz)", hex $Registry->{$mhzkey};
my $cpu = $cpustr;
my $ncpu = keys %{$Registry->{$basekey}};
my ($cpu_type) = $Registry->{$idkey} =~ /^(\S+)/;
return {
__cpu_type => $cpu_type,
__cpu => $cpu,
__cpu_count => $ncpu,
};
} # __get_registry_sysinfo
sub __get_environment_sysinfo {
return {
__cpu_type => $ENV{PROCESSOR_ARCHITECTURE},
__cpu => $ENV{PROCESSOR_IDENTIFIER},
__cpu_count => $ENV{NUMBER_OF_PROCESSORS},
};
} # __get_environment_sysinfo
1;
__END__
=head1 COPYRIGHT AND LICENSE
(c) 2016-2018, Abe Timmerman & H.Merijn Brand, All rights reserved.
With contributions from Jarkko Hietaniemi, Campo Weijerman, Alan Burlison,
Allen Smith, Alain Barbet, Dominic Dunlop, Rich Rauenzahn, David Cantrell.
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.
See:
=over 4
=item * L<http://www.perl.com/perl/misc/Artistic.html>
=item * L<http://www.gnu.org/copyleft/gpl.html>
=back
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
=cut
|