Hello community,
here is the log from the commit of package perl-List-AllUtils for openSUSE:Factory checked in at 2014-07-19 11:04:30
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-List-AllUtils (Old)
and /work/SRC/openSUSE:Factory/.perl-List-AllUtils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-List-AllUtils"
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-List-AllUtils/perl-List-AllUtils.changes 2013-11-26 19:25:56.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.perl-List-AllUtils.new/perl-List-AllUtils.changes 2014-07-19 11:04:52.000000000 +0200
@@ -1,0 +2,8 @@
+Thu Jul 17 09:27:56 UTC 2014 - coolo@suse.com
+
+- updated to 0.08
+ - This version now works with both List::MoreUtils 0.28-0.33 and the latest
+ trial version, 0.400_006. Note that it does not work with earlier versions
+ of 0.400.
+
+-------------------------------------------------------------------
Old:
----
List-AllUtils-0.07.tar.gz
New:
----
List-AllUtils-0.08.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-List-AllUtils.spec ++++++
--- /var/tmp/diff_new_pack.vvQ3WB/_old 2014-07-19 11:04:53.000000000 +0200
+++ /var/tmp/diff_new_pack.vvQ3WB/_new 2014-07-19 11:04:53.000000000 +0200
@@ -1,7 +1,7 @@
#
# spec file for package perl-List-AllUtils
#
-# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
Name: perl-List-AllUtils
-Version: 0.07
+Version: 0.08
Release: 0
%define cpan_name List-AllUtils
Summary: Combines List::Util and List::MoreUtils in one bite-sized package
@@ -33,7 +33,6 @@
BuildRequires: perl(List::Util) >= 1.31
BuildRequires: perl(Test::More) >= 0.88
BuildRequires: perl(Test::Warnings)
-#BuildRequires: perl(List::AllUtils)
Requires: perl(List::MoreUtils) >= 0.28
Requires: perl(List::Util) >= 1.31
%{perl_requires}
++++++ List-AllUtils-0.07.tar.gz -> List-AllUtils-0.08.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/Changes new/List-AllUtils-0.08/Changes
--- old/List-AllUtils-0.07/Changes 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/Changes 2014-04-01 22:16:48.000000000 +0200
@@ -1,3 +1,10 @@
+0.08 2014-04-01
+
+- This version now works with both List::MoreUtils 0.28-0.33 and the latest
+ trial version, 0.400_006. Note that it does not work with earlier versions
+ of 0.400.
+
+
0.07 2013-10-14
- The last version totally broke all exports from List::MoreUtils. Now there
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/LICENSE new/List-AllUtils-0.08/LICENSE
--- old/List-AllUtils-0.07/LICENSE 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/LICENSE 2014-04-01 22:16:48.000000000 +0200
@@ -1,4 +1,4 @@
-This software is Copyright (c) 2013 by Dave Rolsky.
+This software is Copyright (c) 2014 by Dave Rolsky.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/MANIFEST new/List-AllUtils-0.08/MANIFEST
--- old/List-AllUtils-0.07/MANIFEST 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/MANIFEST 2014-04-01 22:16:48.000000000 +0200
@@ -1,3 +1,4 @@
+# This file was automatically generated by Dist::Zilla::Plugin::Manifest v5.015.
Changes
INSTALL
LICENSE
@@ -15,6 +16,6 @@
t/release-eol.t
t/release-no-tabs.t
t/release-pod-coverage.t
-t/release-pod-linkcheck.t
t/release-pod-no404s.t
t/release-pod-syntax.t
+t/release-synopsis.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/META.json new/List-AllUtils-0.08/META.json
--- old/List-AllUtils-0.07/META.json 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/META.json 2014-04-01 22:16:48.000000000 +0200
@@ -4,7 +4,7 @@
"Dave Rolsky "
],
"dynamic_config" : 0,
- "generated_by" : "Dist::Zilla version 4.300039, CPAN::Meta::Converter version 2.131560",
+ "generated_by" : "Dist::Zilla version 5.015, CPAN::Meta::Converter version 2.131560",
"license" : [
"artistic_2"
],
@@ -23,6 +23,8 @@
"requires" : {
"Pod::Coverage::TrustPod" : "0",
"Test::CPAN::Changes" : "0.19",
+ "Test::More" : "0",
+ "Test::NoTabs" : "0",
"Test::Pod" : "1.41",
"Test::Pod::Coverage" : "1.08"
}
@@ -59,7 +61,7 @@
"web" : "http://git.urth.org/List-AllUtils.git"
}
},
- "version" : "0.07",
+ "version" : "0.08",
"x_authority" : "cpan:DROLSKY"
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/META.yml new/List-AllUtils-0.08/META.yml
--- old/List-AllUtils-0.07/META.yml 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/META.yml 2014-04-01 22:16:48.000000000 +0200
@@ -3,29 +3,29 @@
author:
- 'Dave Rolsky '
build_requires:
- File::Find: 0
- File::Temp: 0
- Test::More: 0.88
- Test::Warnings: 0
+ File::Find: '0'
+ File::Temp: '0'
+ Test::More: '0.88'
+ Test::Warnings: '0'
configure_requires:
- ExtUtils::MakeMaker: 6.30
+ ExtUtils::MakeMaker: '6.30'
dynamic_config: 0
-generated_by: 'Dist::Zilla version 4.300039, CPAN::Meta::Converter version 2.131560'
+generated_by: 'Dist::Zilla version 5.015, CPAN::Meta::Converter version 2.131560'
license: artistic_2
meta-spec:
url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ version: '1.4'
name: List-AllUtils
requires:
- Exporter: 0
- List::MoreUtils: 0.28
- List::Util: 1.31
- base: 0
- strict: 0
- warnings: 0
+ Exporter: '0'
+ List::MoreUtils: '0.28'
+ List::Util: '1.31'
+ base: '0'
+ strict: '0'
+ warnings: '0'
resources:
bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=List-AllUtils
homepage: http://metacpan.org/release/List-AllUtils
repository: git://git.urth.org/List-AllUtils.git
-version: 0.07
+version: '0.08'
x_authority: cpan:DROLSKY
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/Makefile.PL new/List-AllUtils-0.08/Makefile.PL
--- old/List-AllUtils-0.07/Makefile.PL 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/Makefile.PL 2014-04-01 22:16:48.000000000 +0200
@@ -1,4 +1,5 @@
+# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v5.015.
use strict;
use warnings;
@@ -33,37 +34,31 @@
"Test::More" => "0.88",
"Test::Warnings" => 0
},
- "VERSION" => "0.07",
+ "VERSION" => "0.08",
"test" => {
"TESTS" => "t/*.t"
}
);
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
- my $tr = delete $WriteMakefileArgs{TEST_REQUIRES};
- my $br = $WriteMakefileArgs{BUILD_REQUIRES};
- for my $mod ( keys %$tr ) {
- if ( exists $br->{$mod} ) {
- $br->{$mod} = $tr->{$mod} if $tr->{$mod} > $br->{$mod};
- }
- else {
- $br->{$mod} = $tr->{$mod};
- }
- }
-}
+my %FallbackPrereqs = (
+ "Exporter" => 0,
+ "File::Find" => 0,
+ "File::Temp" => 0,
+ "List::MoreUtils" => "0.28",
+ "List::Util" => "1.31",
+ "Test::More" => "0.88",
+ "Test::Warnings" => 0,
+ "base" => 0,
+ "strict" => 0,
+ "warnings" => 0
+);
-unless ( eval { ExtUtils::MakeMaker->VERSION(6.56) } ) {
- my $br = delete $WriteMakefileArgs{BUILD_REQUIRES};
- my $pp = $WriteMakefileArgs{PREREQ_PM};
- for my $mod ( keys %$br ) {
- if ( exists $pp->{$mod} ) {
- $pp->{$mod} = $br->{$mod} if $br->{$mod} > $pp->{$mod};
- }
- else {
- $pp->{$mod} = $br->{$mod};
- }
- }
+
+unless ( eval { ExtUtils::MakeMaker->VERSION(6.63_03) } ) {
+ delete $WriteMakefileArgs{TEST_REQUIRES};
+ delete $WriteMakefileArgs{BUILD_REQUIRES};
+ $WriteMakefileArgs{PREREQ_PM} = \%FallbackPrereqs;
}
delete $WriteMakefileArgs{CONFIGURE_REQUIRES}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/README new/List-AllUtils-0.08/README
--- old/List-AllUtils-0.07/README 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/README 2014-04-01 22:16:48.000000000 +0200
@@ -1,14 +1,542 @@
+NAME
+ List::AllUtils - Combines List::Util and List::MoreUtils in one
+ bite-sized package
+VERSION
+ version 0.08
-This archive contains the distribution List-AllUtils,
-version 0.07:
+SYNOPSIS
+ use List::AllUtils qw( first any );
- Combines List::Util and List::MoreUtils in one bite-sized package
+ # _Everything_ from List::Util and List::MoreUtils
+ use List::AllUtils qw( :all );
-This software is Copyright (c) 2013 by Dave Rolsky.
+ my @numbers = ( 1, 2, 3, 5, 7 );
+ # or don't import anything
+ return List::AllUtils::first { $_ > 5 } @numbers;
-This is free software, licensed under:
+DESCRIPTION
+ Are you sick of trying to remember whether a particular helper is
+ defined in "List::Util" or "List::MoreUtils"? I sure am. Now you don't
+ have to remember. This module will export all of the functions that
+ either of those two modules defines.
- The Artistic License 2.0 (GPL Compatible)
+ Note that all function documentation has been shamelessly copied from
+ List::Util and List::MoreUtils.
+LIST-REDUCTION FUNCTIONS
+ The following set of functions all reduce a list down to a single value.
+
+ reduce BLOCK LIST
+ Reduces LIST by calling BLOCK, in a scalar context, multiple times,
+ setting $a and $b each time. The first call will be with $a and $b set
+ to the first two elements of the list, subsequent calls will be done by
+ setting $a to the result of the previous call and $b to the next element
+ in the list.
+
+ Returns the result of the last call to BLOCK. If LIST is empty then
+ "undef" is returned. If LIST only contains one element then that element
+ is returned and BLOCK is not executed.
+
+ $foo = reduce { $a < $b ? $a : $b } 1..10 # min
+ $foo = reduce { $a lt $b ? $a : $b } 'aa'..'zz' # minstr
+ $foo = reduce { $a + $b } 1 .. 10 # sum
+ $foo = reduce { $a . $b } @bar # concat
+
+ If your algorithm requires that "reduce" produce an identity value, then
+ make sure that you always pass that identity value as the first argument
+ to prevent "undef" being returned
+
+ $foo = reduce { $a + $b } 0, @values; # sum with 0 identity value
+
+ The remaining list-reduction functions are all specialisations of this
+ generic idea.
+
+ first BLOCK LIST
+ Similar to "grep" in that it evaluates BLOCK setting $_ to each element
+ of LIST in turn. "first" returns the first element where the result from
+ BLOCK is a true value. If BLOCK never returns true or LIST was empty
+ then "undef" is returned.
+
+ $foo = first { defined($_) } @list # first defined value in @list
+ $foo = first { $_ > $value } @list # first value in @list which
+ # is greater than $value
+
+ This function could be implemented using "reduce" like this
+
+ $foo = reduce { defined($a) ? $a : wanted($b) ? $b : undef } undef, @list
+
+ for example wanted() could be defined() which would return the first
+ defined value in @list
+
+ max LIST
+ Returns the entry in the list with the highest numerical value. If the
+ list is empty then "undef" is returned.
+
+ $foo = max 1..10 # 10
+ $foo = max 3,9,12 # 12
+ $foo = max @bar, @baz # whatever
+
+ This function could be implemented using "reduce" like this
+
+ $foo = reduce { $a > $b ? $a : $b } 1..10
+
+ maxstr LIST
+ Similar to "max", but treats all the entries in the list as strings and
+ returns the highest string as defined by the "gt" operator. If the list
+ is empty then "undef" is returned.
+
+ $foo = maxstr 'A'..'Z' # 'Z'
+ $foo = maxstr "hello","world" # "world"
+ $foo = maxstr @bar, @baz # whatever
+
+ This function could be implemented using "reduce" like this
+
+ $foo = reduce { $a gt $b ? $a : $b } 'A'..'Z'
+
+ min LIST
+ Similar to "max" but returns the entry in the list with the lowest
+ numerical value. If the list is empty then "undef" is returned.
+
+ $foo = min 1..10 # 1
+ $foo = min 3,9,12 # 3
+ $foo = min @bar, @baz # whatever
+
+ This function could be implemented using "reduce" like this
+
+ $foo = reduce { $a < $b ? $a : $b } 1..10
+
+ minstr LIST
+ Similar to "min", but treats all the entries in the list as strings and
+ returns the lowest string as defined by the "lt" operator. If the list
+ is empty then "undef" is returned.
+
+ $foo = minstr 'A'..'Z' # 'A'
+ $foo = minstr "hello","world" # "hello"
+ $foo = minstr @bar, @baz # whatever
+
+ This function could be implemented using "reduce" like this
+
+ $foo = reduce { $a lt $b ? $a : $b } 'A'..'Z'
+
+ sum LIST
+ Returns the sum of all the elements in LIST. If LIST is empty then
+ "undef" is returned.
+
+ $foo = sum 1..10 # 55
+ $foo = sum 3,9,12 # 24
+ $foo = sum @bar, @baz # whatever
+
+ This function could be implemented using "reduce" like this
+
+ $foo = reduce { $a + $b } 1..10
+
+ sum0 LIST
+ Similar to "sum", except this returns 0 when given an empty list, rather
+ than "undef".
+
+KEY/VALUE PAIR LIST FUNCTIONS
+ The following set of functions, all inspired by List::Pairwise, consume
+ an even-sized list of pairs. The pairs may be key/value associations
+ from a hash, or just a list of values. The functions will all preserve
+ the original ordering of the pairs, and will not be confused by multiple
+ pairs having the same "key" value - nor even do they require that the
+ first of each pair be a plain string.
+
+ pairgrep BLOCK KVLIST
+ Similar to perl's "grep" keyword, but interprets the given list as an
+ even-sized list of pairs. It invokes the BLOCK multiple times, in scalar
+ context, with $a and $b set to successive pairs of values from the
+ KVLIST.
+
+ Returns an even-sized list of those pairs for which the BLOCK returned
+ true in list context, or the count of the number of pairs in scalar
+ context. (Note, therefore, in scalar context that it returns a number
+ half the size of the count of items it would have returned in list
+ context).
+
+ @subset = pairgrep { $a =~ m/^[[:upper:]]+$/ } @kvlist
+
+ Similar to "grep", "pairgrep" aliases $a and $b to elements of the given
+ list. Any modifications of it by the code block will be visible to the
+ caller.
+
+ pairfirst BLOCK KVLIST
+ Similar to the "first" function, but interprets the given list as an
+ even-sized list of pairs. It invokes the BLOCK multiple times, in scalar
+ context, with $a and $b set to successive pairs of values from the
+ KVLIST.
+
+ Returns the first pair of values from the list for which the BLOCK
+ returned true in list context, or an empty list of no such pair was
+ found. In scalar context it returns a simple boolean value, rather than
+ either the key or the value found.
+
+ ( $key, $value ) = pairfirst { $a =~ m/^[[:upper:]]+$/ } @kvlist
+
+ Similar to "grep", "pairfirst" aliases $a and $b to elements of the
+ given list. Any modifications of it by the code block will be visible to
+ the caller.
+
+ pairmap BLOCK KVLIST
+ Similar to perl's "map" keyword, but interprets the given list as an
+ even-sized list of pairs. It invokes the BLOCK multiple times, in list
+ context, with $a and $b set to successive pairs of values from the
+ KVLIST.
+
+ Returns the concatenation of all the values returned by the BLOCK in
+ list context, or the count of the number of items that would have been
+ returned in scalar context.
+
+ @result = pairmap { "The key $a has value $b" } @kvlist
+
+ Similar to "map", "pairmap" aliases $a and $b to elements of the given
+ list. Any modifications of it by the code block will be visible to the
+ caller.
+
+ pairs KVLIST
+ A convenient shortcut to operating on even-sized lists of pairs, this
+ function returns a list of ARRAY references, each containing two items
+ from the given list. It is a more efficient version of
+
+ pairmap { [ $a, $b ] } KVLIST
+
+ It is most convenient to use in a "foreach" loop, for example:
+
+ foreach ( pairs @KVLIST ) {
+ my ( $key, $value ) = @$_;
+ ...
+ }
+
+ pairkeys KVLIST
+ A convenient shortcut to operating on even-sized lists of pairs, this
+ function returns a list of the the first values of each of the pairs in
+ the given list. It is a more efficient version of
+
+ pairmap { $a } KVLIST
+
+ pairvalues KVLIST
+ A convenient shortcut to operating on even-sized lists of pairs, this
+ function returns a list of the the second values of each of the pairs in
+ the given list. It is a more efficient version of
+
+ pairmap { $b } KVLIST
+
+OTHER FUNCTIONS
+ shuffle LIST
+ Returns the elements of LIST in a random order
+
+ @cards = shuffle 0..51 # 0..51 in a random order
+
+List::MoreUtils FUNCTIONS
+ any BLOCK LIST
+ Returns a true value if any item in LIST meets the criterion given
+ through BLOCK. Sets $_ for each item in LIST in turn:
+
+ print "At least one value undefined"
+ if any { ! defined($_) } @list;
+
+ Returns false otherwise, or if LIST is empty.
+
+ all BLOCK LIST
+ Returns a true value if all items in LIST meet the criterion given
+ through BLOCK, or if LIST is empty. Sets $_ for each item in LIST in
+ turn:
+
+ print "All items defined"
+ if all { defined($_) } @list;
+
+ Returns false otherwise.
+
+ none BLOCK LIST
+ Logically the negation of "any". Returns a true value if no item in LIST
+ meets the criterion given through BLOCK, or if LIST is empty. Sets $_
+ for each item in LIST in turn:
+
+ print "No value defined"
+ if none { defined($_) } @list;
+
+ Returns false otherwise.
+
+ notall BLOCK LIST
+ Logically the negation of "all". Returns a true value if not all items
+ in LIST meet the criterion given through BLOCK. Sets $_ for each item in
+ LIST in turn:
+
+ print "Not all values defined"
+ if notall { defined($_) } @list;
+
+ Returns false otherwise, or if LIST is empty.
+
+ true BLOCK LIST
+ Counts the number of elements in LIST for which the criterion in BLOCK
+ is true. Sets $_ for each item in LIST in turn:
+
+ printf "%i item(s) are defined", true { defined($_) } @list;
+
+ false BLOCK LIST
+ Counts the number of elements in LIST for which the criterion in BLOCK
+ is false. Sets $_ for each item in LIST in turn:
+
+ printf "%i item(s) are not defined", false { defined($_) } @list;
+
+ firstidx BLOCK LIST
+ first_index BLOCK LIST
+ Returns the index of the first element in LIST for which the criterion
+ in BLOCK is true. Sets $_ for each item in LIST in turn:
+
+ my @list = (1, 4, 3, 2, 4, 6);
+ printf "item with index %i in list is 4", firstidx { $_ == 4 } @list;
+ __END__
+ item with index 1 in list is 4
+
+ Returns -1 if no such item could be found.
+
+ "first_index" is an alias for "firstidx".
+
+ lastidx BLOCK LIST
+ last_index BLOCK LIST
+ Returns the index of the last element in LIST for which the criterion in
+ BLOCK is true. Sets $_ for each item in LIST in turn:
+
+ my @list = (1, 4, 3, 2, 4, 6);
+ printf "item with index %i in list is 4", lastidx { $_ == 4 } @list;
+ __END__
+ item with index 4 in list is 4
+
+ Returns -1 if no such item could be found.
+
+ "last_index" is an alias for "lastidx".
+
+ insert_after BLOCK VALUE LIST
+ Inserts VALUE after the first item in LIST for which the criterion in
+ BLOCK is true. Sets $_ for each item in LIST in turn.
+
+ my @list = qw/This is a list/;
+ insert_after { $_ eq "a" } "longer" => @list;
+ print "@list";
+ __END__
+ This is a longer list
+
+ insert_after_string STRING VALUE LIST
+ Inserts VALUE after the first item in LIST which is equal to STRING.
+
+ my @list = qw/This is a list/;
+ insert_after_string "a", "longer" => @list;
+ print "@list";
+ __END__
+ This is a longer list
+
+ apply BLOCK LIST
+ Applies BLOCK to each item in LIST and returns a list of the values
+ after BLOCK has been applied. In scalar context, the last element is
+ returned. This function is similar to "map" but will not modify the
+ elements of the input list:
+
+ my @list = (1 .. 4);
+ my @mult = apply { $_ *= 2 } @list;
+ print "\@list = @list\n";
+ print "\@mult = @mult\n";
+ __END__
+ @list = 1 2 3 4
+ @mult = 2 4 6 8
+
+ Think of it as syntactic sugar for
+
+ for (my @mult = @list) { $_ *= 2 }
+
+ before BLOCK LIST
+ Returns a list of values of LIST up to (and not including) the point
+ where BLOCK returns a true value. Sets $_ for each element in LIST in
+ turn.
+
+ before_incl BLOCK LIST
+ Same as "before" but also includes the element for which BLOCK is true.
+
+ after BLOCK LIST
+ Returns a list of the values of LIST after (and not including) the point
+ where BLOCK returns a true value. Sets $_ for each element in LIST in
+ turn.
+
+ @x = after { $_ % 5 == 0 } (1..9); # returns 6, 7, 8, 9
+
+ after_incl BLOCK LIST
+ Same as "after" but also includes the element for which BLOCK is true.
+
+ indexes BLOCK LIST
+ Evaluates BLOCK for each element in LIST (assigned to $_) and returns a
+ list of the indices of those elements for which BLOCK returned a true
+ value. This is just like "grep" only that it returns indices instead of
+ values:
+
+ @x = indexes { $_ % 2 == 0 } (1..10); # returns 1, 3, 5, 7, 9
+
+ firstval BLOCK LIST
+ first_value BLOCK LIST
+ Returns the first element in LIST for which BLOCK evaluates to true.
+ Each element of LIST is set to $_ in turn. Returns "undef" if no such
+ element has been found.
+
+ "first_val" is an alias for "firstval".
+
+ lastval BLOCK LIST
+ last_value BLOCK LIST
+ Returns the last value in LIST for which BLOCK evaluates to true. Each
+ element of LIST is set to $_ in turn. Returns "undef" if no such element
+ has been found.
+
+ "last_val" is an alias for "lastval".
+
+ pairwise BLOCK ARRAY1 ARRAY2
+ Evaluates BLOCK for each pair of elements in ARRAY1 and ARRAY2 and
+ returns a new list consisting of BLOCK's return values. The two elements
+ are set to $a and $b. Note that those two are aliases to the original
+ value so changing them will modify the input arrays.
+
+ @a = (1 .. 5);
+ @b = (11 .. 15);
+ @x = pairwise { $a + $b } @a, @b; # returns 12, 14, 16, 18, 20
+
+ # mesh with pairwise
+ @a = qw/a b c/;
+ @b = qw/1 2 3/;
+ @x = pairwise { ($a, $b) } @a, @b; # returns a, 1, b, 2, c, 3
+
+ each_array ARRAY1 ARRAY2 ...
+ Creates an array iterator to return the elements of the list of arrays
+ ARRAY1, ARRAY2 throughout ARRAYn in turn. That is, the first time it is
+ called, it returns the first element of each array. The next time, it
+ returns the second elements. And so on, until all elements are
+ exhausted.
+
+ This is useful for looping over more than one array at once:
+
+ my $ea = each_array(@a, @b, @c);
+ while ( my ($a, $b, $c) = $ea->() ) { .... }
+
+ The iterator returns the empty list when it reached the end of all
+ arrays.
+
+ If the iterator is passed an argument of '"index"', then it returns the
+ index of the last fetched set of values, as a scalar.
+
+ each_arrayref LIST
+ Like each_array, but the arguments are references to arrays, not the
+ plain arrays.
+
+ natatime EXPR, LIST
+ Creates an array iterator, for looping over an array in chunks of $n
+ items at a time. (n at a time, get it?). An example is probably a better
+ explanation than I could give in words.
+
+ Example:
+
+ my @x = ('a' .. 'g');
+ my $it = natatime 3, @x;
+ while (my @vals = $it->())
+ {
+ print "@vals\n";
+ }
+
+ This prints
+
+ a b c
+ d e f
+ g
+
+ mesh ARRAY1 ARRAY2 [ ARRAY3 ... ]
+ zip ARRAY1 ARRAY2 [ ARRAY3 ... ]
+ Returns a list consisting of the first elements of each array, then the
+ second, then the third, etc, until all arrays are exhausted.
+
+ Examples:
+
+ @x = qw/a b c d/;
+ @y = qw/1 2 3 4/;
+ @z = mesh @x, @y; # returns a, 1, b, 2, c, 3, d, 4
+
+ @a = ('x');
+ @b = ('1', '2');
+ @c = qw/zip zap zot/;
+ @d = mesh @a, @b, @c; # x, 1, zip, undef, 2, zap, undef, undef, zot
+
+ "zip" is an alias for "mesh".
+
+ uniq LIST
+ distinct LIST
+ Returns a new list by stripping duplicate values in LIST. The order of
+ elements in the returned list is the same as in LIST. In scalar context,
+ returns the number of unique elements in LIST.
+
+ my @x = uniq 1, 1, 2, 2, 3, 5, 3, 4; # returns 1 2 3 5 4
+ my $x = uniq 1, 1, 2, 2, 3, 5, 3, 4; # returns 5
+
+ minmax LIST
+ Calculates the minimum and maximum of LIST and returns a two element
+ list with the first element being the minimum and the second the
+ maximum. Returns the empty list if LIST was empty.
+
+ The "minmax" algorithm differs from a naive iteration over the list
+ where each element is compared to two values being the so far calculated
+ min and max value in that it only requires 3n/2 - 2 comparisons. Thus it
+ is the most efficient possible algorithm.
+
+ However, the Perl implementation of it has some overhead simply due to
+ the fact that there are more lines of Perl code involved. Therefore,
+ LIST needs to be fairly big in order for "minmax" to win over a naive
+ implementation. This limitation does not apply to the XS version.
+
+ part BLOCK LIST
+ Partitions LIST based on the return value of BLOCK which denotes into
+ which partition the current value is put.
+
+ Returns a list of the partitions thusly created. Each partition created
+ is a reference to an array.
+
+ my $i = 0;
+ my @part = part { $i++ % 2 } 1 .. 8; # returns [1, 3, 5, 7], [2, 4, 6, 8]
+
+ You can have a sparse list of partitions as well where non-set
+ partitions will be undef:
+
+ my @part = part { 2 } 1 .. 10; # returns undef, undef, [ 1 .. 10 ]
+
+ Be careful with negative values, though:
+
+ my @part = part { -1 } 1 .. 10;
+ __END__
+ Modification of non-creatable array value attempted, subscript -1 ...
+
+ Negative values are only okay when they refer to a partition previously
+ created:
+
+ my @idx = ( 0, 1, -1 );
+ my $i = 0;
+ my @part = part { $idx[$++ % 3] } 1 .. 8; # [1, 4, 7], [2, 3, 5, 6, 8]
+
+EXPORTS
+ This module exports nothing by default. You can import functions by
+ name, or get everything with the ":all" tag.
+
+SEE ALSO
+ "List::Util" and "List::MoreUtils", obviously.
+
+ Also see "Util::Any", which unifies many more util modules, and also
+ lets you rename functions as part of the import.
+
+BUGS
+ Please report any bugs or feature requests to
+ "bug-list-allutils@rt.cpan.org", or through the web interface at
+ http://rt.cpan.org. I will be notified, and then you'll automatically
+ be notified of progress on your bug as I make changes.
+
+AUTHOR
+ Dave Rolsky
+
+COPYRIGHT AND LICENSE
+ This software is Copyright (c) 2014 by Dave Rolsky.
+
+ This is free software, licensed under:
+
+ The Artistic License 2.0 (GPL Compatible)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/dist.ini new/List-AllUtils-0.08/dist.ini
--- old/List-AllUtils-0.07/dist.ini 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/dist.ini 2014-04-01 22:16:48.000000000 +0200
@@ -3,9 +3,11 @@
license = Artistic_2_0
copyright_holder = Dave Rolsky
-version = 0.07
+version = 0.08
[@DROLSKY]
+; Can't find List::Pairwise for some reason
+remove = Test::Pod::LinkCheck
dist = List-AllUtils
next_release_width = 7
stopwords = ARRAYn
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/lib/List/AllUtils.pm new/List-AllUtils-0.08/lib/List/AllUtils.pm
--- old/List-AllUtils-0.07/lib/List/AllUtils.pm 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/lib/List/AllUtils.pm 2014-04-01 22:16:48.000000000 +0200
@@ -1,11 +1,5 @@
package List::AllUtils;
-{
- $List::AllUtils::VERSION = '0.07';
-}
-BEGIN {
- $List::AllUtils::AUTHORITY = 'cpan:DROLSKY';
-}
-
+$List::AllUtils::VERSION = '0.08';
use strict;
use warnings;
@@ -18,7 +12,7 @@
my %imported = map { $_ => 1 } @List::Util::EXPORT_OK;
List::MoreUtils->import( grep { !$imported{$_} }
- @{ $List::MoreUtils::EXPORT_TAGS{all} } );
+ @List::MoreUtils::EXPORT_OK );
}
use base 'Exporter';
@@ -41,7 +35,7 @@
=head1 VERSION
-version 0.07
+version 0.08
=head1 SYNOPSIS
@@ -50,6 +44,7 @@
# _Everything_ from List::Util and List::MoreUtils
use List::AllUtils qw( :all );
+ my @numbers = ( 1, 2, 3, 5, 7 );
# or don't import anything
return List::AllUtils::first { $_ > 5 } @numbers;
@@ -590,7 +585,8 @@
__END__
Modification of non-creatable array value attempted, subscript -1 ...
-Negative values are only ok when they refer to a partition previously created:
+Negative values are only okay when they refer to a partition previously
+created:
my @idx = ( 0, 1, -1 );
my $i = 0;
@@ -621,7 +617,7 @@
=head1 COPYRIGHT AND LICENSE
-This software is Copyright (c) 2013 by Dave Rolsky.
+This software is Copyright (c) 2014 by Dave Rolsky.
This is free software, licensed under:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/t/01-basic.t new/List-AllUtils-0.08/t/01-basic.t
--- old/List-AllUtils-0.07/t/01-basic.t 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/t/01-basic.t 2014-04-01 22:16:48.000000000 +0200
@@ -68,6 +68,7 @@
ok( Baz->can('any'), 'imported everything, got any' );
ok( Baz->can('all'), 'imported everything, got all' );
ok( Baz->can('apply'), 'imported everything, got apply' );
+ok( Baz->can('uniq'), 'imported everything, got uniq' );
is(
Baz::test_first( 1, 2, 3 ),
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/t/author-pod-spell.t new/List-AllUtils-0.08/t/author-pod-spell.t
--- old/List-AllUtils-0.07/t/author-pod-spell.t 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/t/author-pod-spell.t 2014-04-01 22:16:48.000000000 +0200
@@ -10,8 +10,9 @@
use warnings;
use Test::More;
-# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.004003
-eval "use Test::Spelling 0.12; use Pod::Wordlist::hanekomu; 1" or die $@;
+# generated by Dist::Zilla::Plugin::Test::PodSpelling 2.006002
+use Test::Spelling 0.12;
+use Pod::Wordlist;
add_stopwords(<DATA>);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/t/release-no-tabs.t new/List-AllUtils-0.08/t/release-no-tabs.t
--- old/List-AllUtils-0.07/t/release-no-tabs.t 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/t/release-no-tabs.t 2014-04-01 22:16:48.000000000 +0200
@@ -8,9 +8,15 @@
use strict;
use warnings;
-use Test::More;
-eval 'use Test::NoTabs';
-plan skip_all => 'Test::NoTabs required' if $@;
+# this test was generated with Dist::Zilla::Plugin::NoTabsTests 0.06
-all_perl_files_ok();
+use Test::More 0.88;
+use Test::NoTabs;
+
+my @files = (
+ 'lib/List/AllUtils.pm'
+);
+
+notabs_ok($_) foreach @files;
+done_testing;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/t/release-pod-coverage.t new/List-AllUtils-0.08/t/release-pod-coverage.t
--- old/List-AllUtils-0.07/t/release-pod-coverage.t 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/t/release-pod-coverage.t 2014-04-01 22:16:48.000000000 +0200
@@ -7,15 +7,9 @@
}
}
+# This file was automatically generated by Dist::Zilla::Plugin::PodCoverageTests.
-use Test::More;
-
-eval "use Test::Pod::Coverage 1.08";
-plan skip_all => "Test::Pod::Coverage 1.08 required for testing POD coverage"
- if $@;
-
-eval "use Pod::Coverage::TrustPod";
-plan skip_all => "Pod::Coverage::TrustPod required for testing POD coverage"
- if $@;
+use Test::Pod::Coverage 1.08;
+use Pod::Coverage::TrustPod;
all_pod_coverage_ok({ coverage_class => 'Pod::Coverage::TrustPod' });
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/t/release-pod-linkcheck.t new/List-AllUtils-0.08/t/release-pod-linkcheck.t
--- old/List-AllUtils-0.07/t/release-pod-linkcheck.t 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/t/release-pod-linkcheck.t 1970-01-01 01:00:00.000000000 +0100
@@ -1,28 +0,0 @@
-#!perl
-
-BEGIN {
- unless ($ENV{RELEASE_TESTING}) {
- require Test::More;
- Test::More::plan(skip_all => 'these tests are for release candidate testing');
- }
-}
-
-
-use strict;
-use warnings;
-use Test::More;
-
-foreach my $env_skip ( qw(
- SKIP_POD_LINKCHECK
-) ){
- plan skip_all => "\$ENV{$env_skip} is set, skipping"
- if $ENV{$env_skip};
-}
-
-eval "use Test::Pod::LinkCheck";
-if ( $@ ) {
- plan skip_all => 'Test::Pod::LinkCheck required for testing POD';
-}
-else {
- Test::Pod::LinkCheck->new->all_pod_ok;
-}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/t/release-pod-syntax.t new/List-AllUtils-0.08/t/release-pod-syntax.t
--- old/List-AllUtils-0.07/t/release-pod-syntax.t 2013-10-14 22:58:25.000000000 +0200
+++ new/List-AllUtils-0.08/t/release-pod-syntax.t 2014-04-01 22:16:48.000000000 +0200
@@ -7,9 +7,8 @@
}
}
+# This file was automatically generated by Dist::Zilla::Plugin::PodSyntaxTests.
use Test::More;
-
-eval "use Test::Pod 1.41";
-plan skip_all => "Test::Pod 1.41 required for testing POD" if $@;
+use Test::Pod 1.41;
all_pod_files_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/List-AllUtils-0.07/t/release-synopsis.t new/List-AllUtils-0.08/t/release-synopsis.t
--- old/List-AllUtils-0.07/t/release-synopsis.t 1970-01-01 01:00:00.000000000 +0100
+++ new/List-AllUtils-0.08/t/release-synopsis.t 2014-04-01 22:16:48.000000000 +0200
@@ -0,0 +1,16 @@
+#!perl
+
+BEGIN {
+ unless ($ENV{RELEASE_TESTING}) {
+ require Test::More;
+ Test::More::plan(skip_all => 'these tests are for release candidate testing');
+ }
+}
+
+
+use Test::More;
+
+eval "use Test::Synopsis";
+plan skip_all => "Test::Synopsis required for testing synopses"
+ if $@;
+all_synopsis_ok('lib');
--
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org