SHARYA...::Util(3pm)

πŸ“¦
version 0.77 Β· 2 versions
  • 0.77 Β· debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking (latest)
  • 0.77 Β· ubuntu jammy
, in debian bookworm, debian trixie, ubuntu noble, ubuntu resolute, ubuntu stonking

πŸ’– NAME πŸ’–

okay bestie so this is SHARYANTO::Array::Util β€” array-related utilities, and the manual page itself is filed under SHARYA...::Util(3pm) (the name got squished, don't worry about it, it's iconic that way). It's a Perl module and it is here to make arrays do cute things. πŸŽ€


🌸 VERSION 🌸

This document describes version 0.77 of SHARYANTO::Array::Util (from Perl distribution SHARYANTO-Utils), released on 2015-09-04. vintage but still serving πŸ’…


✨ 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/])

like look at those return values, the way they just work πŸ”₯


πŸŽ€ DESCRIPTION πŸŽ€

no description text up here bestie, the whole personality lives in the FUNCTIONS section right below. scroll, it's worth it 🫢


πŸ‘‘ FUNCTIONS πŸ‘‘

πŸ¦‹ match_array_or_regex($needle, $haystack) -> any

Check whether an item matches (list of) values/regexes. vibe check for your data, basically ✨

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. (yes, ACL like access control list, not the other thing πŸ™ˆ)

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. same girl, different name, no cap πŸ’…

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. yes, "loosely", she said what she said πŸ’€ (so don't assume it's an exact clone, the exceptions are real)

πŸ¦‹ 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"]).

🚨 bestie, listen: 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.

(iconic that the docs are this honest tbh 😭)


🌈 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. receipts, bestie, always bring receipts πŸ“


🫢 AUTHOR 🫢

perlancar <perlancar@cpan.org>


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.


and that's the whole page, bestie β€” this was perl v5.34.0, dated 2022-06-17, filing itself under SHARYA...::Util(3pm). go forth and slay your arrays πŸ’–βœ¨πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from