Perl
Clone or download
Pull request Compare This branch is 22 commits ahead of dev.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
dev
lib/Lazy
t
.gitignore
COPYRIGHT
Changes
LICENSE
MANIFEST
MANIFEST.SKIP
Makefile.PL
README
README.md

README.md

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) <orkun@cpan.org>

COPYRIGHT AND LICENSE

Copyright (C) 2017 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/>.