Commit | Line | Data |
---|---|---|
1479465f GJ |
1 | # Copyright © 2013, 2015 Guillem Jover <guillem@debian.org> |
2 | # | |
3 | # This program is free software; you can redistribute it and/or modify | |
4 | # it under the terms of the GNU General Public License as published by | |
5 | # the Free Software Foundation; either version 2 of the License, or | |
6 | # (at your option) any later version. | |
7 | # | |
8 | # This program is distributed in the hope that it will be useful, | |
9 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
11 | # GNU General Public License for more details. | |
12 | # | |
13 | # You should have received a copy of the GNU General Public License | |
14 | # along with this program. If not, see <https://www.gnu.org/licenses/>. | |
15 | ||
16 | package Dpkg::Util; | |
17 | ||
18 | use strict; | |
19 | use warnings; | |
20 | ||
21 | our $VERSION = '0.01'; | |
22 | our @EXPORT_OK = qw( | |
23 | any | |
24 | none | |
25 | ); | |
26 | our %EXPORT_TAGS = ( | |
27 | list => [ qw(any none) ], | |
28 | ); | |
29 | ||
30 | use Exporter qw(import); | |
31 | ||
32 | # XXX: Ideally we would use List::MoreUtils, but that's not a core module, | |
33 | # so to avoid the additional dependency we'll make do with the following | |
34 | # trivial reimplementations. | |
35 | # | |
36 | # These got added to List::Util 1.33, which got merged into perl 5.20.0, | |
37 | # once that is in Debian oldstable we can switch to that core module. | |
38 | ||
39 | sub any(&@) { | |
40 | my $code = shift; | |
41 | ||
42 | foreach (@_) { | |
43 | return 1 if $code->(); | |
44 | } | |
45 | ||
46 | return 0; | |
47 | } | |
48 | ||
49 | sub none(&@) { | |
50 | my $code = shift; | |
51 | ||
52 | foreach (@_) { | |
53 | return 0 if $code->(); | |
54 | } | |
55 | ||
56 | return 1; | |
57 | } | |
58 | ||
59 | 1; |