GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Venus::Os(3) User Contributed Perl Documentation Venus::Os(3)

Venus::Os - OS Class

OS Class for Perl 5

  package main;
  use Venus::Os;
  my $os = Venus::Os->new;
  # bless({...}, 'Venus::Os')
  # my $name = $os->name;
  # "linux"

This package provides methods for determining the current operating system, as well as finding and executing files.

This package inherits behaviors from:

Venus::Kind::Utility

This package provides the following methods:

  call(string $name, string @args) (any)

The call method attempts to find the path to the program specified via "which" and dispatches to "mkcall" in Venus::Path and returns the result. Any exception throw is supressed and will return undefined if encountered.

Since 2.80

call example 1
  # given: synopsis
  package main;
  my $app = $os->is_win ? 'perl.exe' : 'perl';
  my $call = $os->call($app, '-V:osname');
  # "osname='linux';"
    
call example 2
  # given: synopsis
  package main;
  my $app = $os->is_win ? 'perl.exe' : 'perl';
  my @call = $os->call($app, '-V:osname');
  # ("osname='linux';", 0)
    
call example 3
  # given: synopsis
  package main;
  my $call = $os->call('nowhere');
  # undef
    
call example 4
  # given: synopsis
  package main;
  my @call = $os->call($^X, '-V:osname');
  # ("osname='linux';", 0)
    
call example 5
  # given: synopsis
  package main;
  my @call = $os->call($^X, 't/data/sun');
  # ("", 1)
    

  find(string $name, string @paths) (arrayref)

The find method searches the paths provided for a file matching the name provided and returns all the files found as an arrayref. Returns a list in list context.

Since 2.80

find example 1
  # given: synopsis
  package main;
  my $find = $os->find('cmd', 't/path/user/bin');
  # ["t/path/user/bin/cmd"]
    
find example 2
  # given: synopsis
  package main;
  my $find = $os->find('cmd', 't/path/user/bin', 't/path/usr/bin');
  # ["t/path/user/bin/cmd", "t/path/usr/bin/cmd"]
    
find example 3
  # given: synopsis
  package main;
  my $find = $os->find('zzz', 't/path/user/bin', 't/path/usr/bin');
  # []
    

  is_bsd() (boolean)

The is_bsd method returns true if the OS is either "freebsd" or "openbsd", and otherwise returns false.

Since 2.80

is_bsd example 1
  # given: synopsis
  package main;
  # on linux
  my $is_bsd = $os->is_bsd;
  # false
    
is_bsd example 2
  # given: synopsis
  package main;
  # on freebsd
  my $is_bsd = $os->is_bsd;
  # true
    
is_bsd example 3
  # given: synopsis
  package main;
  # on openbsd
  my $is_bsd = $os->is_bsd;
  # true
    

  is_cyg() (boolean)

The is_cyg method returns true if the OS is either "cygwin" or "msys", and otherwise returns false.

Since 2.80

is_cyg example 1
  # given: synopsis
  package main;
  # on linux
  my $is_cyg = $os->is_cyg;
  # false
    
is_cyg example 2
  # given: synopsis
  package main;
  # on cygwin
  my $is_cyg = $os->is_cyg;
  # true
    
is_cyg example 3
  # given: synopsis
  package main;
  # on msys
  my $is_cyg = $os->is_cyg;
  # true
    

  is_dos() (boolean)

The is_dos method returns true if the OS is either "mswin32" or "dos" or "os2", and otherwise returns false.

Since 2.80

is_dos example 1
  # given: synopsis
  package main;
  # on linux
  my $is_dos = $os->is_dos;
  # false
    
is_dos example 2
  # given: synopsis
  package main;
  # on mswin32
  my $is_dos = $os->is_dos;
  # true
    
is_dos example 3
  # given: synopsis
  package main;
  # on dos
  my $is_dos = $os->is_dos;
  # true
    
is_dos example 4
  # given: synopsis
  package main;
  # on os2
  my $is_dos = $os->is_dos;
  # true
    

  is_lin() (boolean)

The is_lin method returns true if the OS is "linux", and otherwise returns false.

Since 2.80

is_lin example 1
  # given: synopsis
  package main;
  # on linux
  my $is_lin = $os->is_lin;
  # true
    
is_lin example 2
  # given: synopsis
  package main;
  # on macos
  my $is_lin = $os->is_lin;
  # false
    
is_lin example 3
  # given: synopsis
  package main;
  # on mswin32
  my $is_lin = $os->is_lin;
  # false
    

  is_mac() (boolean)

The is_mac method returns true if the OS is either "macos" or "darwin", and otherwise returns false.

Since 2.80

is_mac example 1
  # given: synopsis
  package main;
  # on linux
  my $is_mac = $os->is_mac;
  # false
    
is_mac example 2
  # given: synopsis
  package main;
  # on macos
  my $is_mac = $os->is_mac;
  # true
    
is_mac example 3
  # given: synopsis
  package main;
  # on darwin
  my $is_mac = $os->is_mac;
  # true
    

  is_non() (boolean)

The is_non method returns true if the OS is not recognized, and if recognized returns false.

Since 2.80

is_non example 1
  # given: synopsis
  package main;
  # on linux
  my $is_non = $os->is_non;
  # false
    
is_non example 2
  # given: synopsis
  package main;
  # on aix
  my $is_non = $os->is_non;
  # true
    

  is_sun() (boolean)

The is_sun method returns true if the OS is either "solaris" or "sunos", and otherwise returns false.

Since 2.80

is_sun example 1
  # given: synopsis
  package main;
  # on linux
  my $is_sun = $os->is_sun;
  # false
    
is_sun example 2
  # given: synopsis
  package main;
  # on solaris
  my $is_sun = $os->is_sun;
  # true
    
is_sun example 3
  # given: synopsis
  package main;
  # on sunos
  my $is_sun = $os->is_sun;
  # true
    

  is_vms() (boolean)

The is_vms method returns true if the OS is "vms", and otherwise returns false.

Since 2.80

is_vms example 1
  # given: synopsis
  package main;
  # on linux
  my $is_vms = $os->is_vms;
  # false
    
is_vms example 2
  # given: synopsis
  package main;
  # on vms
  my $is_vms = $os->is_vms;
  # true
    

  is_win() (boolean)

The is_win method returns true if the OS is either "mswin32" or "dos" or "os2", and otherwise returns false.

Since 2.80

is_win example 1
  # given: synopsis
  package main;
  # on linux
  my $is_win = $os->is_win;
  # false
    
is_win example 2
  # given: synopsis
  package main;
  # on mswin32
  my $is_win = $os->is_win;
  # true
    
is_win example 3
  # given: synopsis
  package main;
  # on dos
  my $is_win = $os->is_win;
  # true
    
is_win example 4
  # given: synopsis
  package main;
  # on os2
  my $is_win = $os->is_win;
  # true
    

  name() (string)

The name method returns the OS name.

Since 2.80

name example 1
  # given: synopsis
  package main;
  # on linux
  my $name = $os->name;
  # "linux"
  # same as $^O
    

  paths() (arrayref)

The paths method returns the paths specified by the "PATH" environment variable as an arrayref of unique paths. Returns a list in list context.

Since 2.80

paths example 1
  # given: synopsis
  package main;
  my $paths = $os->paths;
  # [
  #   "/root/local/bin",
  #   "/root/bin",
  #   "/usr/local/sbin",
  #   "/usr/local/bin",
  #   "/usr/sbin:/usr/bin",
  # ]
    

  quote(string $data) (string)

The quote method accepts a string and returns the OS-specific quoted version of the string.

Since 2.91

quote example 1
  # given: synopsis
  package main;
  # on linux
  my $quote = $os->quote("hello \"world\"");
  # "'hello \"world\"'"
    
quote example 2
  # given: synopsis
  package main;
  # on linux
  my $quote = $os->quote('hello \'world\'');
  # "'hello '\\''world'\\'''"
    
quote example 3
  # given: synopsis
  package main;
  # on mswin32
  my $quote = $os->quote("hello \"world\"");
  # "\"hello \\"world\\"\""
    
quote example 4
  # given: synopsis
  package main;
  # on mswin32
  my $quote = $os->quote('hello "world"');
  # '"hello \"world\""'
    

  type() (string)

The type method returns a string representing the "test" method, which identifies the OS, that would return true if called, based on the name of the OS.

Since 2.80

type example 1
  # given: synopsis
  package main;
  # on linux
  my $type = $os->type;
  # "is_lin"
    
type example 2
  # given: synopsis
  package main;
  # on macos
  my $type = $os->type;
  # "is_mac"
    
type example 3
  # given: synopsis
  package main;
  # on mswin32
  my $type = $os->type;
  # "is_win"
    
type example 4
  # given: synopsis
  package main;
  # on openbsd
  my $type = $os->type;
  # "is_bsd"
    
type example 5
  # given: synopsis
  package main;
  # on cygwin
  my $type = $os->type;
  # "is_cyg"
    
type example 6
  # given: synopsis
  package main;
  # on dos
  my $type = $os->type;
  # "is_win"
    
type example 7
  # given: synopsis
  package main;
  # on solaris
  my $type = $os->type;
  # "is_sun"
    
type example 8
  # given: synopsis
  package main;
  # on vms
  my $type = $os->type;
  # "is_vms"
    

  where(string $file) (arrayref)

The where method searches the paths defined by the "PATH" environment variable for a file matching the name provided and returns all the files found as an arrayref. Returns a list in list context. This method doesn't check (or care) if the files found are actually executable.

Since 2.80

where example 1
  # given: synopsis
  package main;
  my $where = $os->where('cmd');
  # [
  #   "t/path/user/local/bin/cmd",
  #   "t/path/user/bin/cmd",
  #   "t/path/usr/bin/cmd",
  #   "t/path/usr/local/bin/cmd",
  #   "t/path/usr/local/sbin/cmd",
  #   "t/path/usr/sbin/cmd"
  # ]
    
where example 2
  # given: synopsis
  package main;
  my $where = $os->where('app1');
  # [
  #   "t/path/user/local/bin/app1",
  #   "t/path/usr/bin/app1",
  #   "t/path/usr/sbin/app1"
  # ]
    
where example 3
  # given: synopsis
  package main;
  my $where = $os->where('app2');
  # [
  #   "t/path/user/local/bin/app2",
  #   "t/path/usr/bin/app2",
  # ]
    
where example 4
  # given: synopsis
  package main;
  my $where = $os->where('app3');
  # [
  #   "t/path/user/bin/app3",
  #   "t/path/usr/sbin/app3"
  # ]
    
where example 5
  # given: synopsis
  package main;
  my $where = $os->where('app4');
  # [
  #   "t/path/user/local/bin/app4",
  #   "t/path/usr/local/bin/app4",
  #   "t/path/usr/local/sbin/app4",
  # ]
    
where example 6
  # given: synopsis
  package main;
  my $where = $os->where('app5');
  # []
    

  which(string $file) (string)

The which method returns the first match from the result of calling the "where" method with the arguments provided.

Since 2.80

which example 1
  # given: synopsis
  package main;
  my $which = $os->which('cmd');
  # "t/path/user/local/bin/cmd",
    
which example 2
  # given: synopsis
  package main;
  my $which = $os->which('app1');
  # "t/path/user/local/bin/app1"
    
which example 3
  # given: synopsis
  package main;
  my $which = $os->which('app2');
  # "t/path/user/local/bin/app2"
    
which example 4
  # given: synopsis
  package main;
  my $which = $os->which('app3');
  # "t/path/user/bin/app3"
    
which example 5
  # given: synopsis
  package main;
  my $which = $os->which('app4');
  # "t/path/user/local/bin/app4"
    
which example 6
  # given: synopsis
  package main;
  my $which = $os->which('app5');
  # undef
    

Awncorp, "awncorp@cpan.org"

Copyright (C) 2022, Awncorp, "awncorp@cpan.org".

This program is free software, you can redistribute it and/or modify it under the terms of the Apache license version 2.0.

2023-11-27 perl v5.40.2

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.