Sys::Info::OS - Detailed os information.
use Sys::Info; my $info = Sys::Info->new; my $os = $info->os(%options);
or
use Sys::Info::OS; my $os = Sys::Info::OS->new(%options);
Example:
use Data::Dumper; warn "Collected information can be incomplete\n" if $os->is_unknown; my %fs = $os->fs; print Data::Dumper->Dump([\%fs], ['*FILE_SYSTEM']); print "B1ll G4teZ rull4z!\n" if $os->is_windows; print "Pinguin detected!\n" if $os->is_linux; if ( $os->is_windows ) { printf "This is a %s based system\n", $os->is_winnt ? 'NT' : '9.x'; } printf "Operating System: %s\n", $os->name( long => 1 ); my $user = $os->login_name( real => 1 ) || $os->login_name || 'User'; print "$user, You've Got The P.O.W.E.R.!\n" if $os->is_root; if ( my $up = $os->uptime ) { my $tick = $os->tick_count; printf "Running since %s\n" , scalar localtime $up; printf "Uptime: %.2f hours\n" , $tick / (60*60 ); # probably windows printf "Uptime: %.2f days\n" , $tick / (60*60*24 ); # might be windows printf "Uptime: %.2f months\n", $tick / (60*60*24*30); # hmm... smells like tux }
This document describes version 0.7804 of Sys::Info::OS released on 21 January 2015.
0.7804
Sys::Info::OS
21 January 2015
Supplies detailed operating system information.
Object constructor.
Returns the OS name. Supports these named parameters: edition, long:
edition
long
# also include the edition info if present $os->name( edition => 1 );
This will return the long OS name (with build number, etc.):
# also include the edition info if present $os->name( long => 1, edition => 1 );
Returns the OS version.
Returns the OS build number or build date, depending on the system.
Returns the uptime as a unix timestamp.
Returns the uptime in seconds since the machine booted.
Machine name
Returns the network domain name.
Synonyms:
Returns the name of the effective user. Supports parameters in name => value format. Accepted parameters: real:
name => value
real
my $user = $os->login_name( real => 1 ) || $os->login_name;
Returns the IP number.
Returns an info hash about the filesystem. The contents of the hash can vary among different systems.
If successful, returns the bitness ( 32 or 64 ) of the OS. Returns false otherwise.
32
64
Returns a hash containing various informations about the OS.
These are some useful utility methods.
Returns true if the os is windows. Synonyms:
Returns true if the OS is a NT based system (NT/2000/XP/2003).
Always returns false if you are not under windows or you are not under a NT based system.
Returns true if the OS is a 9x based system (95/98/Me).
Always returns false if you are not under Windows or Windows9x.
Returns true if the os is linux. Synonyms:
Returns true if the os is (free|open|net)bsd.
Returns true if this module does not support the OS directly.
Returns true if the current user has admin rights. Synonyms:
I don't have access to all operating systems in the world, so this module (currently) only supports Windows, Linux and (Free)BSD. Windows support is better. If you want support for some other OS, you'll need to write the driver yourself. Anything other than natively supported systems will fall-back to the generic Unknown driver which has very limited capabilities.
Unknown
Win32::IsAdminUser() implemented in 5.8.4 (However, it is possible to manually upgrade the Win32 module). If your ActivePerl is older than this, is_admin method will always returns false. (There may be a workaround for that).
Win32
is_admin
Contents of the filesystem hash may change in further releases.
Filesystem [Windows]
File system information can not be extracted under restricted environments. If this is the case, we'll get an access is denied error.
Bitness has some problems [Linux, BSD], especially on the os side.
Win32, POSIX, Sys::Info, Sys::Info::Device, http://msdn.microsoft.com/library/en-us/sysinfo/base/osversioninfoex_str.asp.
Burak Gursoy <burak@cpan.org>.
Copyright 2006 - 2015 Burak Gursoy. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.16.2 or, at your option, any later version of Perl 5 you may have available.
To install Sys::Info::Base, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Sys::Info::Base
CPAN shell
perl -MCPAN -e shell install Sys::Info::Base
For more information on module installation, please visit the detailed CPAN module installation guide.