NAME
    Lazy::Utils - Utilities for lazy

VERSION
    version 1.04

SYNOPSIS
    Utilities for lazy

  Methods
   trim($str)
    trims given string

    $str: *string will be trimed*

    return value: *trimed string*

   ltrim($str)
    trims left given string

    $str: *string will be trimed*

    return value: *trimed string*

   rtrim($str)
    trims right given string

    $str: *string will be trimed*

    return value: *trimed string*

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

    $path: *path of file*

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

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

    $path: *path of file*

    $contents: *file contents in string type*

    return value: *success 1, otherwise undef*

   shellmeta($s)
    escapes metacharacters of double-quoted shell string

    $s: *double-quoted shell string*

    return value: *escaped string*

   _system($cmd, @argv)
    executes a system command like Perl system call

    $cmd: *command*

    @argv: *command line arguments*

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

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

    returned $!: *system error message like on Perl system call*

   bashReadLine($prompt)
    reads a line using bash

    $prompt: *prompt*

    return value: *line*

   commandArgs($prefs, @argv)
    resolves command line arguments, eg: -opt1 --opt2 val2 cmd param1 param2
    ...

    $prefs: *preferences in hash type*

        optionAtAll: *accepts options after command otherwise evaluates as
        parameter, by default 0*

    @argv: *command line arguments*

    return value: *{ -opt1 => 'opt1', --opt2 => 'val2', command => 'cmd',
    parameters => ['param1', 'param2', ...] }*

   cmdArgs(@argv)
    resolves command line arguments using commandArgs with default
    preferences

   whereisBin($name, $path)
    searches valid binary in search path

    $name: *binary name*

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

    return value: *binary path founded in search path, otherwise undef*

   fileCache($tag, $expiry, $subref)
    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 $subref, 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 $subref, puts and
        cleanups.*

        =0: *never gets cached value. Always tries to get current value
        using $subref, 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
        $subref, puts and cleanups.*

    $subref: *sub 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*

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:

    *   Switch

    *   FindBin

    *   Cwd

    *   File::Basename

    *   File::Slurp

    *   JSON

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

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

AUTHOR
    Orkun Karaduman <orkunkaraduman@gmail.com>

COPYRIGHT AND LICENSE
    Copyright (C) 2016 Orkun Karaduman <orkunkaraduman@gmail.com>

    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/>.

