diff options
-rw-r--r-- | MDK/Common/DataStructure.pm | 20 | ||||
-rw-r--r-- | perl-MDK-Common.spec | 5 |
2 files changed, 21 insertions, 4 deletions
diff --git a/MDK/Common/DataStructure.pm b/MDK/Common/DataStructure.pm index 83e49f1..e4b04b4 100644 --- a/MDK/Common/DataStructure.pm +++ b/MDK/Common/DataStructure.pm @@ -73,10 +73,15 @@ finds the value that follow the scalar in the list (circular): C<next_val_in_array(3, [1, 2, 3])> gives C<1> (do not use a list with duplicates) +=item group_by2(LIST) + +interprets the list as an ordered hash, returns a list of [key,value]: +C<list2kv(1 => 2, 3 => 4, 5 => 6)> gives C<[1,2], [3,4], [5,6]> + =item list2kv(LIST) -interprets the list as an hash, returns the keys and the values: -C<list2kv(1 => 2, 3 => 4)> gives C<[1,3], [2,4]> +interprets the list as an ordered hash, returns the keys and the values: +C<list2kv(1 => 2, 3 => 4, 5 => 6)> gives C<[1,3,5], [2,4,6]> =back @@ -94,7 +99,7 @@ use MDK::Common::Func; use vars qw(@ISA %EXPORT_TAGS @EXPORT_OK); @ISA = qw(Exporter); -@EXPORT_OK = qw(ikeys add2hash add2hash_ put_in_hash member invbool listlength deref is_empty_array_ref is_empty_hash_ref uniq difference2 intersection next_val_in_array list2kv); +@EXPORT_OK = qw(ikeys add2hash add2hash_ put_in_hash member invbool listlength deref is_empty_array_ref is_empty_hash_ref uniq difference2 intersection next_val_in_array group_by2 list2kv); %EXPORT_TAGS = (all => [ @EXPORT_OK ]); @@ -132,4 +137,13 @@ sub list2kv { \@k, \@v; } +sub group_by2 { + my @l; + for (my $i = 0; $i < @_ ; $i += 2) { + push @l, [ $_[$i], $_[$i+1] ]; + } + @l; +} + + 1; diff --git a/perl-MDK-Common.spec b/perl-MDK-Common.spec index 41b44f8..511c933 100644 --- a/perl-MDK-Common.spec +++ b/perl-MDK-Common.spec @@ -2,7 +2,7 @@ # do not change the version here, change in MDK/Common.pm.pl %define version THEVERSION -%define release 8mdk +%define release 9mdk %define perl_sitelib %(eval "`perl -V:installsitelib`"; echo $installsitelib) Summary: Various simple functions @@ -50,6 +50,9 @@ rm -rf $RPM_BUILD_ROOT # MODIFY IN THE CVS: cvs.mandrakesoft.com:/cooker soft/perl-MDK-Common %changelog +* Sun Jan 27 2002 Pixel <pixel@mandrakesoft.com> 1.0.2-9mdk +- add MDK::Common::DataStructure::group_by2 + * Thu Dec 20 2001 Pixel <pixel@mandrakesoft.com> 1.0.2-8mdk - add Various::noreturn() |