blob: 8ed2d7a18222c4709211b595dc8c05eb1c26c4e0 [file] [log] [blame]
# Copyright (C) all contributors <meta@public-inbox.org>
# License: AGPL-3.0+ <https://www.gnu.org/licenses/agpl-3.0.txt>
# compatibility code for old Perl and standard modules, mainly
# List::Util but maybe other stuff
package PublicInbox::Compat;
use v5.12;
use parent qw(Exporter);
require List::Util;
our @EXPORT_OK = qw(uniqstr sum0);
# uniqstr is in List::Util 1.45+, which means Perl 5.26+;
# so maybe 2030 for us since we need to support enterprise distros.
# We can use uniqstr everywhere in our codebase and don't need
# to account for special cases of `uniqnum' nor `uniq' in List::Util
# even if they make more sense in some contexts
no warnings 'once';
*uniqstr = List::Util->can('uniqstr') // sub (@) {
my %seen;
grep { !$seen{$_}++ } @_;
};
*sum0 = List::Util->can('sum0') // sub (@) { List::Util::sum(@_) // 0 };
1;