Provided by: libsharyanto-utils-perl_0.77-2_all bug

NAME

       SHARYANTO::Array::Util - Array-related utilities

VERSION

       This document describes version 0.77 of SHARYANTO::Array::Util (from Perl distribution
       SHARYANTO-Utils), released on 2015-09-04.

SYNOPSIS

        use SHARYANTO::Array::Util qw(match_array_or_regex split_array);

        match_array_or_regex('bar',  ['foo', 'bar', qr/[xyz]/]); # true, matches string
        match_array_or_regex('baz',  ['foo', 'bar', qr/[xyz]/]); # true, matches regex
        match_array_or_regex('oops', ['foo', 'bar', qr/[xyz]/]); # false

        my @res = split_array('--', [qw/--opt1 --opt2 -- foo bar -- --val/]);
        # -> ([qw/--opt1 --opt2/],  [qw/foo bar/],  [qw/--val/])

        my @res = split_array(qr/--/, [qw/--opt1 --opt2 -- foo bar -- --val/], 2);
        # -> ([qw/--opt1 --opt2/],  [qw/foo bar -- --val/])

        my @res = split_array(qr/(--)/, [qw/--opt1 --opt2 -- foo bar -- --val/], 2);
        # -> ([qw/--opt1 --opt2/],  [qw/--/],  [qw/foo bar -- --val/])

        my @res = split_array(qr/(-)(-)/, [qw/--opt1 --opt2 -- foo bar -- --val/], 2);
        # -> ([qw/--opt1 --opt2/],  [qw/- -/],  [qw/foo bar -- --val/])

DESCRIPTION

FUNCTIONS

   match_array_or_regex($needle, $haystack) -> any
       Check whether an item matches (list of) values/regexes.

       Examples:

        match_array_or_regex("abc", ["abc", "abd"]); # -> 1
        match_array_or_regex("abc", qr/ab./); # -> 1
        match_array_or_regex("abc", [qr/ab./, "abd"]); # -> 1
       This routine can be used to match an item against a regex or a list of
       strings/regexes, e.g. when matching against an ACL.

       Since the smartmatch ("~~") operator can already match against a list of strings or
       regexes, this function is currently basically equivalent to:

        if (ref($haystack) eq 'ARRAY') {
            return $needle ~~ @$haystack;
        } else {
            return $needle =~ /$haystack/;
        }

       Arguments ('*' denotes required arguments):

       •   haystack* => re|str|array[re|str]needle* => str

       Return value:  (any)

   match_regex_or_array($needle, $haystack) -> any
       Alias for match_array_or_regex.

       Examples:

        match_regex_or_array("abc", ["abc", "abd"]); # -> 1
        match_regex_or_array("abc", qr/ab./); # -> 1
        match_regex_or_array("abc", [qr/ab./, "abd"]); # -> 1
       This routine can be used to match an item against a regex or a list of
       strings/regexes, e.g. when matching against an ACL.

       Since the smartmatch ("~~") operator can already match against a list of strings or
       regexes, this function is currently basically equivalent to:

        if (ref($haystack) eq 'ARRAY') {
            return $needle ~~ @$haystack;
        } else {
            return $needle =~ /$haystack/;
        }

       Arguments ('*' denotes required arguments):

       •   haystack* => re|str|array[re|str]needle* => str

       Return value:  (any)

   split_array($str_or_re, \@array[, $limit]) => LIST
       Like the "split()" builtin Perl function, but applies on an array instead of a scalar. It
       loosely follows the "split()" semantic, with some exceptions.

   replace_array_content($aryref, @elems) => $aryref
       Replace elements in <$aryref> with @elems. Return $aryref. Do not create a new arrayref
       object (i.e. it is different from: "$aryref = ["new", "content"]").

       Do not use this function. In Perl you can just use: "splice(@$aryref, 0, length(@$aryref),
       @elems)" or even easier: "@$aryref = @elems". I put the function here for reminder.

SEE ALSO

       SHARYANTO

HOMEPAGE

       Please visit the project's homepage at <https://metacpan.org/release/SHARYANTO-Utils>.

SOURCE

       Source repository is at <https://github.com/perlancar/perl-SHARYANTO-Utils>.

BUGS

       Please report any bugs or feature requests on the bugtracker website
       <https://rt.cpan.org/Public/Dist/Display.html?Name=SHARYANTO-Utils>

       When submitting a bug or request, please include a test-file or a patch to an existing
       test-file that illustrates the bug or desired feature.

AUTHOR

       perlancar <perlancar@cpan.org>

COPYRIGHT AND LICENSE

       This software is copyright (c) 2015 by perlancar@cpan.org.

       This is free software; you can redistribute it and/or modify it under the same terms as
       the Perl 5 programming language system itself.