Inspired by Re: Have hash of arrays. Want to test if variable is a member of any of the arrays i "borrowed" some code of my predecessors at gave List::BinarySearch by davido a quick try:
#!/usr/bin/env perl use warnings; use strict; use List::BinarySearch qw( binsearch ); my %hoa = ( x => [qw(a b c d)], y => [qw(e f g)], z => [qw(h i c j)], ); my $x = q(c); for my $k ( keys %hoa ) { my @tmp = sort { $a cmp $b } @{ $hoa{$k} }; my $idx = binsearch { $a cmp $b } $x, @tmp; if ( defined $idx ) { print qq($k => $tmp[$idx]\n); } } __END__ x => c z => c
N.B.: First time usage of this module. I don't claim that my sketch written for curiosity is good or better... It isn't ;-)
For details please see ebenda.
Best Regards, Karl
«The Crux of the Biscuit is the Apostrophe»
In reply to Re: Have hash of arrays. Want to test if variable is a member of any of the arrays
by karlgoethebier
in thread Have hash of arrays. Want to test if variable is a member of any of the arrays
by batrams
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |