Beefy Boxes and Bandwidth Generously Provided by pair Networks
good chemistry is complicated,
and a little bit messy -LW
 
PerlMonks  

Re: searching through hash values

by kyle (Abbot)
on Apr 08, 2009 at 12:37 UTC ( #756327=note: print w/replies, xml ) Need Help??


in reply to searching through hash values

You can use Data::Diver since it will decline to autovivify at every turn.

use strict; use warnings; use Data::Diver qw( Dive ); my $hash_ref = { '0000006' => [ 47, 986, { '6' => [ undef, 8, '0.0476673428', '0.0000000000', '0.0000000000', '0.0504833512', '-2.3718998111e+01', '6.7559883050e-01', '0.0000000000e+00', '0.0000000000e+00' ], '4' => [ undef, 3, '0.0476673428', '0.0000000000', '0.0000000000', '0.0502136752', '-2.3718998111e+01', '8.6357443606e-01', '0.0000000000e+00', '0.0000000000e+00' ], '1' => [ 19, 439, '0.0476673428', '0.0432801822', '0.0452380952', '0.0539499037', '-1.7611636075e-01', '3.3572455230e-01', '2.3371924011e-01', '4.6743848022e-01' ], '3' => [ 'NA' ], '2' => [ 22, 286, '0.0476673428', '0.0769230769', '0.0833333333', '0.0370370370', '8.1093021684e-01', '9.9753809371e-01', '9.9388971159e-01', '1.0000000000e+00' ], '5' => [ 6, 249, '0.0476673428', '0.0240963855', '0.0246913580', '0.0589080460', '-8.6952438185e-01', '2.6721209055e-02', '9.8480960134e-03', '1.9696192027e-02' ] } ] }; my %hash = %{$hash_ref}; ( $_, undef ) = each %hash; my @physh_found; foreach my $physh ( 1 .. 6 ) { # next if ! $hash{$_}[2]{$physh}[9]; next if !Dive( \%hash, $_, 2, $physh, 9 ); push @physh_found, $physh; } use Test::More tests => 2; is_deeply( \@physh_found, [qw( 1 2 4 5 6 )], 'found the right physhies' ); is_deeply( \%hash, $hash_ref, 'hash is unchanged' );

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://756327]
help
Chatterbox?
[marto]: when you work on the outside, for a client, you can make them aware of the stupids, but they don' t always listen :/
[Corion]: Yeah, you can lead them to water, but it's illegal to drown them...
[Discipulus]: Here my solution marto: create a win fake machine insied AD. do a micro fake partition foreach remote partition you wont to monit. put a web server that acept from data from remote systems and full fake partition as needed. fake partition are Mb. ;=)
[marto]: Discipulus yeah, the nuclear industry love fake machines sitting around on a controlled domain :P
[marto]: changing a typo on a website is often a great deal of paper work :P

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (10)
As of 2017-01-24 10:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you watch meteor showers?




    Results (203 votes). Check out past polls.