SYNOPSIS

     use IPC::System::Options qw(system backtick);
    
     # use exactly like system()
     system(...);
    
     # use exactly like backtick (qx, ``)
     my $res = backtick(...);
    
     # but it accepts an optional hash first argument to specify options
     system({...}, ...);
    
     # run without shell, even though there is only one argument
     system({shell=>0}, "ls");
     system({shell=>0}, "ls -lR"); # will fail, as there is no 'ls -lR' binary
    
     # set LC_ALL/LANGUAGE/LANG environment variable
     system({lang=>"de_DE.UTF-8"}, "df");
    
     # log using Log::Any, die on failure
     system({log=>1, die=>1}, "blah", ...);

    Set default options for all calls (prefix each option with dash):

     use IPC::System::Options 'system', 'backtick', -log=>1, -die=>1;

DESCRIPTION

FUNCTIONS

 system([ \%opts ], @args)

    Just like perl's system() except that it accepts an optional hash first
    argument to specify options. Currently known options:

      * shell => bool

      Can be set to 0 to always avoid invoking the shell. The default is to
      use the shell under certain conditions, like Perl's system().

      * lang => str

      Temporarily set locale-related environment variables: LC_ALL (this is
      the highest precedence, even higher than the other LC_* variables
      including LC_MESSAGES), LANGUAGE (this is used in Linux, with
      precedence higher than LANG but lower than LC_*), and LANG.

      Of course you can set the environment variables manually (or use the
      env option), this option is just for convenience.

      * env => hashref

      Temporarily set environment variables.

      * log => bool

      If set to true, then will log invocation as well as return/result
      value. Will log using Log::Any at the trace level.

      * die => bool

      If set to true, will die on failure.

 backtick([ \%opts ], @args)

    Just like perl's backtick operator (qx()) except that it accepts an
    optional hash first argument to specify options.

    Known options:

      * lang => str

      See option documentation in system().

      * env => hash

      See option documentation in system().

      * log => bool

      See option documentation in system().

      * die => bool

      See option documentation in system().

      * max_log_output => int

      If set, will limit result length being logged. It's a good idea to
      set this (e.g. to 1024) if you expect some command to return large
      output.

