MDK::Common::DataStrucUser(Contributed Perl DocumMDK::Common::DataStructure(3)NAMEMDK::Common::DataStructure - miscellaneous list/hash manipulation
functions
SYNOPSIS
use MDK::Common::DataStructure qw(:all);
EXPORTSsort_numbers(LIST)
numerical sort (small numbers at beginning)
ikeys(HASH)
aka sorted integer keys, as simple as "sort { $a <=> $b } keys"
add2hash(HASH REF, HASH REF)
adds to the first hash the second hash if the key/value is not
already there
add2hash_
adds to the first hash the second hash if the key is not already
there
put_in_hash
adds to the first hash the second hash, crushing existing
key/values
member(SCALAR, LIST)
is the value in the list?
invbool(SCALAR REF)
toggles the boolean value
listlength(LIST)
returns the length of the list. Useful in list (opposed to array)
context:
sub f { "a", "b" }
my $l = listlength f();
whereas "scalar f()" would return "b"
deref(REF)
de-reference
deref_array(REF)
de-reference arrays:
deref_array [ "a", "b" ] #=> ("a", "b")
deref_array "a" #=> "a"
is_empty_array_ref(SCALAR)
is the scalar undefined or is the array empty
is_empty_hash_ref(SCALAR)
is the scalar undefined or is the hash empty
uniq(LIST)
returns the list with no duplicates (keeping the first elements)
uniq_ { CODE } LIST
returns the list with no duplicates according to the scalar results
of CODE on each element of LIST (keeping the first elements)
uniq_ { $_->[1] } [ 1, "fo" ], [ 2, "fob" ], [ 3, "fo" ], [ 4, "bar" ]
gives [ 1, "fo" ], [ 2, "fob" ], [ 4, "bar" ]
difference2(ARRAY REF, ARRAY REF)
returns the first list without the element of the second list
intersection(ARRAY REF, ARRAY REF, ...)
returns the elements which are in all lists
next_val_in_array(SCALAR, ARRAY REF)
finds the value that follow the scalar in the list (circular):
"next_val_in_array(3, [1, 2, 3])" gives 1 (do not use a list with
duplicates)
group_by2(LIST)
interprets the list as an ordered hash, returns a list of
[key,value]: "group_by2(1 =" 2, 3 => 4, 5 => 6)> gives "[1,2],
[3,4], [5,6]"
list2kv(LIST)
interprets the list as an ordered hash, returns the keys and the
values: "list2kv(1 =" 2, 3 => 4, 5 => 6)> gives "[1,3,5], [2,4,6]"
SEE ALSO
MDK::Common
perl v5.18.1 2011-09-14 MDK::Common::DataStructure(3)