Dear Sirs,

I have the following code, that
take Hash of Hash as an iput.

Then I have function (see below) that takes
a hash and a variable as input.
This function will count the elements
of secondary hashes and delete the hash,
if it is below certain variable limit.

So with this :
my %new_hoh = reduce_hash(%hoh,3);

it should return

my %hoh = (
    key2 =>  {    A => 'foo',
                  B => 'bar',
                  C => 'qux'}, );

But my subroutine doesn't work as it should.
Is there anything wrong with it?

Yours again,
Edward WIJAYA
SINGAPORE

__BEGIN__
use strict;
use warnings;
use Data::Dumper;

my %hoh = (
    key1 =>   {   A => 'foo',
                  B => 'bar',},

    key2 =>  {    A => 'foo',
                  B => 'bar',
                  C => 'qux'},

      key3 =>  {    A => 'foo',}
   );

my %new_hoh = reduce_hash(%hoh,3);
print Dumper \%new_hoh;

#---Subroutine that do the job-------
sub reduce_hash {
    my (%HoH,$limit) = @_;
    foreach my $k ( keys %HoH ) {
            my $count = 0;
            for my $k2 ( keys %{ $HoH{$k} } ) {
                $count++;
              }
              if ($count < $limit){
              delete $HoH{$k};
            }
        }

   return %HoH;
}

__END__

--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to