NAME
   Lazy::Utils - Utility functions

VERSION
   version 1.22

SYNOPSIS
           use Lazy::Utils;

           trim($str);
           ltrim($str);
           rtrim($str);
           file_get_contents($path, $prefs);
           file_put_contents($path, $contents, $prefs);
           shellmeta($s, $nonquoted);
           system2($cmd, @argv);
           bash_readline($prompt);
           cmdargs($prefs, @argv);
           whereis($name, $path);
           file_cache($tag, $expiry, $coderef);
           get_pod_text($file_name, $section, $exclude_section);
           array_to_hash(@array);

DESCRIPTION
   Collection of utility functions all of exported by default.

FUNCTIONS
 trim($str)
   trims given string

   $str: *string will be trimmed*

   return value: *trimmed string*

 ltrim($str)
   trims left given string

   $str: *string will be trimmed*

   return value: *trimmed string*

 rtrim($str)
   trims right given string

   $str: *string will be trimmed*

   return value: *trimmed string*

 file_get_contents($path, $prefs)
   gets all contents of file in string type

   $path: *path of file*

   $prefs: *preferences in HashRef, by default undef*

       utf8: *opens file-handle as :utf8 mode, by default 0*

   return value: *file contents in string type, otherwise undef because of
   errors*

 file_put_contents($path, $contents, $prefs)
   puts all contents of file in string type

   $path: *path of file*

   $contents: *file contents in string type*

   $prefs: *preferences in HashRef, by default undef*

       utf8: *opens file-handle as :utf8 mode, by default 0*

   return value: *success 1, otherwise undef*

 shellmeta($s, $nonquoted)
   escapes metacharacters of interpolated shell string

   $s: *interpolated shell string*

   $nonquoted: *also escapes whitespaces and * character for non-quoted
   interpolated shell string, by default 0*

   return value: *escaped string*

 system2($cmd, @argv)
   _system($cmd, @argv) *OBSOLETE*

   alternative implementation of perls core system subroutine that executes
   a system command

   $cmd: *command*

   @argv: *command line arguments*

   return value: *exit code of command. -1 if fatal error occurs*

   returned $!: *system error message*

   returned $?: *return code of wait call like on perls system call*

 bash_readline($prompt)
   bashReadLine($prompt) *OBSOLETE*

   reads a line from STDIN using Bash

   $prompt: *prompt, by default ''*

   return value: *line*

 cmdargs([$prefs, ]@argv)
   commandArgs([$prefs, ]@argv) *OBSOLETE*

   cmdArgs([$prefs, ]@argv) *OBSOLETE*

   resolves command line arguments

   $prefs: *preferences in HashRef, optional*

       valuableArgs: *accepts option value after option if next argument is
       not an option, by default 0*

       noCommand: *use first parameter instead of command, by default 0*

       optionAtAll: *accepts options after command or first parameter
       otherwise evaluates as parameter, by default 1*

   @argv: *command line arguments*

           -a -b=c -d e --f g --h --i=j k l -- m n

   by default, return value:

           { -a => '', -b => 'c', -d => '', --f => '', --h => '', --i => 'j', command => 'e', parameters => ['g', 'k', 'l'], late_parameters => ['m', 'n'] }

   if valuableArgs is on, return value;

           { -a => '', -b => 'c', -d => 'e', --f => 'g', --h => '', --i => 'j', command => 'k', parameters => ['l'], late_parameters => ['m', 'n'] }

   if noCommand is on, return value:

           { -a => '', -b => 'c', -d => '', --f => '', --h => '', --i => 'j', command => undef, parameters => ['e', 'g', 'k', 'l'], late_parameters => ['m', 'n'] }

   if optionAtAll is off, return value:

           { -a => '', -b => 'c', -d => '', command => 'e', parameters => ['--f', 'g', '--h', '--i=j', 'k', 'l', '--','m', 'n'], late_parameters => [] }

 whereis($name, $path)
   whereisBin($name, $path) *OBSOLETE*

   searches valid binary in search path

   $name: *binary name*

   $path: *search path, by default
   "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"*

   return value: *array of binary path founded in search path*

 file_cache($tag, $expiry, $coderef)
   fileCache($tag, $expiry, $coderef) *OBSOLETE*

   gets most recent cached value in file cache by given tag and caller
   function if there is cached value in expiry period. Otherwise tries to
   get current value using $coderef, puts value in cache and cleanups old
   cache values.

   $tag: *tag for cache*

   $expiry: *cache expiry period*

       <0: *always gets most recent cached value if there is any cached
       value. Otherwise tries to get current value using $coderef, puts and
       cleanups.*

       =0: *never gets cached value. Always tries to get current value
       using $coderef, puts and cleanups.*

       >0: *gets most recent cached value in cache if there is cached value
       in expiry period. Otherwise tries to get current value using
       $coderef, puts and cleanups.*

   $coderef: *code reference to get current value*

   return value: *cached or current value, otherwise undef if there isn't
   cached value and current value doesn't get*

 get_pod_text($file_name, $section, $exclude_section)
   getPodText($file_name, $section, $exclude_section) *OBSOLETE*

   gets a text of pod contents in given file

   $file_name: *file name of searching pod, by default running file*

   $section: *searching head1 section of pod, by default undef gets all of
   contents*

   $exclude_section: *excludes section name, by default undef*

   return value: *text of pod in string or array by line, otherwise undef
   if an error occurs*

 array_to_hash(@array)
   returns hash with indexes for given array

   @array: *command line arguments*

   return value: *Hash or HashRef by wantarray*

INSTALLATION
   To install this module type the following

           perl Makefile.PL
           make
           make test
           make install

   from CPAN

           cpan -i Lazy::Utils

DEPENDENCIES
   This module requires these other modules and libraries:

   *   JSON

   *   Pod::Simple::Text

REPOSITORY
   GitHub <https://github.com/orkunkaraduman/Lazy-Utils>

   CPAN <https://metacpan.org/release/Lazy-Utils>

AUTHOR
   Orkun Karaduman (ORKUN) <[email protected]>

COPYRIGHT AND LICENSE
   Copyright (C) 2017 Orkun Karaduman <[email protected]>

   This program is free software: you can redistribute it and/or modify it
   under the terms of the GNU General Public License as published by the
   Free Software Foundation, either version 3 of the License, or (at your
   option) any later version.

   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. See the GNU General
   Public License for more details.

   You should have received a copy of the GNU General Public License along
   with this program. If not, see <http://www.gnu.org/licenses/>.