NAME
Mac::OSVersion - Get the Mac OS X system version
SYNOPSIS
use Mac::OSVersion;
my $version = Mac::OSXVersion->version; # 10.4.11
my @version = Mac::OSXVersion->version; # (10, 4, 11, 'Tiger', '8.10.1' )
my $name = Mac::OSXVersion->name; # Tiger, etc.
my $name = Mac::OSXVersion->minor_to_name( 3 ); 'Panther';
my $major = Mac::OSXVersion->major; # 10 of 10.4.11
my $minor = Mac::OSXVersion->minor; # 4 or 10.4.11
my $point = Mac::OSXVersion->point; # 11 of 10.4.11
my $build = Mac::OSXVersion->build; # 8R2218
my $kernel = Mac::OSXVersion->kernel; # 8.10.1
DESCRIPTION
Extract the values for the various OS numbers (Mac OS X version, build, kernel) using various methods. Methods may use other modules or external programs. So far this only works on the current machine.
Methods
- version( METHOD );
-
In scalar context, returns the numeric version of OS X, e.g. 10.4.11.
In list context, returns the list of the major, minor, point, name, and kernel versions. Some methods may not return all values, but the values will always be in the same positions.
# 0 1 2 3 4 5 ( $major, $minor, $point, $name, $build, $kernel );
The available methods are list in "Ways of collecting info". Use the subroutine name as
METHOD
. For instance:my @list = Mac::OSVersion->version( 'gestalt' );
- methods()
-
Returns the list of methods that
version
can use to do its work. - name( [METHOD] )
-
Returns the name of major version number, e.g. 'Tiger' 10.4.
METHOD
optionally specifies the method to use to get the answer. Seeversion
for the possible values. - minor_to_name( MINOR )
-
Returns the name ( e.g. 'Tiger' ) for the given minor version number.
0 Cheetah 1 Puma 2 Jaguar 3 Panther 4 Tiger 5 Leopard 6 Snow Leopard 7 Lion 8 Mountain Lion 9 Mavericks
- minor_version_numbers()
-
Returns a list of the minor version numbers
- minor_version_names()
-
Returns a list of the names of the minor versions ( e.g. qw(Cheetah Puma ... )
- major( [METHOD] )
-
Returns the major version number, e.g. 10 or 10.4.11.
METHOD
optionally specifies the method to use to get the answer. Seeversion
for the possible values. Not all methods can return an answer. - minor( [METHOD] )
-
Returns the major version number, e.g. 4 or 10.4.11.
METHOD
optionally specifies the method to use to get the answer. Seeversion
for the possible values. Not all methods can return an answer. - point( [METHOD] )
-
Returns the point release version number, e.g. 11 or 10.4.11.
METHOD
optionally specifies the method to use to get the answer. Seeversion
for the possible values. Not all methods can return an answer. - build( [METHOD] )
-
Returns the point release version number, e.g. 11 or 10.4.11.
METHOD
optionally specifies the method to use to get the answer. Seeversion
for the possible values. Not all methods can return an answer. - kernel( [METHOD] )
-
Returns the kernel version number, e.g. 8.10.1.
METHOD
optionally specifies the method to use to get the answer. Seeversion
for the possible values. Not all methods can return an answer.
Ways of collecting info
There isn't a single way to get all of the info that version
wants to provide, and some of the ways might give different answers for the same installation. Not all methods can return an answer. Here's a table of which methods return what values:
default system_profiler sw_vers gestalt uname
major x x x x
minor x x x x
point x x x x
name x x x x
build x x x
kernel x x x
- default
-
Uses several methods to collect information.
- gestalt
-
Only uses
gestaltSystemVersion
fromMac::Gestalt
to get the major, minor, point, and name fields. This has the curious bug that the point release number will not be greater than 9.In scalar context, returns the version as "10.m.p". In list context, returns the same list as
version
, although some fields may be missing. - sw_vers
-
Only uses
/usr/bin/sw_vers
to get the major, minor, point, build, and name fields.In scalar context, returns the version as "10.m.p". In list context, returns the same list as
version
, although some fields may be missing. - system_profiler
-
Only uses
/usr/sbin/system_profiler
to get the major, minor, point, build, and name fields.In scalar context, returns the version as "10.m.p". In list context, returns the same list as
version
, although some fields may be missing.Software:
System Software Overview: System Version: Mac OS X 10.4.10 (8R2218) Kernel Version: Darwin 8.10.1 Boot Volume: Tiger Computer Name: macbookpro User Name: brian d foy (brian)
- uname
-
Only uses
uname -a
to get the kernel field.In scalar context, returns the kernel version. In list context, returns the same list as
version
, although some fields may be missing.
TO DO
* How does the API look if there is a Mac OS 11?
* Specify a remote machine
SEE ALSO
/usr/bin/sw_vers
/usr/sbin/system_profiler
/usr/bin/uname
Mac::Gestalt
SOURCE AVAILABILITY
This module is in Github
git://github.com/briandfoy/mac-osversion.git
AUTHOR
brian d foy, <bdfoy@cpan.org>
COPYRIGHT AND LICENSE
Copyright (c) 2007-2013, brian d foy, All Rights Reserved.
You may redistribute this under the same terms as Perl itself.