[Perl] multi hash

Patrick Dupre pdupre at gmx.com
Jeu 1 Nov 03:17:03 CET 2018


OK,

Je vais regarder.
Mais, il y a quelque chose que je ne comprends pas dans ce que j'ai ecris.
Pourqoui $nb n'ai pas passe dans l'appel ?

#!/usr/bin/perl

sub multi {
  my ($hoh, $nb) = @_ ;
print "nb: $$nb\n" ;
  if (ref ($hoh) eq "HASH") {
$$nb++ ;
    foreach my $i (keys %{$hoh}) {
print "i: $i, $$nb\n" ;
      multi (%{$hoh {$i}}, $nb) ;
      }
print "HAH\n" ;
    }
  else {
    return ;
    }
  }

my %hash0 ;

my %hash1 ;
$hash1 {A} = 1 ;
$hash1 {B} = 2 ;

my %hash2 ;
$hash2 {A} {a} = 1 ;
$hash2 {A} {b} = 2 ;
$hash2 {B} {a} = 3 ;
$hash2 {B} {b} = 4 ;

my $nb = 0 ;

multi (\%hash0, \$nb) ;
print "0: $nb\n" ;

$nb = 0 ;
multi (\%hash1, \$nb) ;
print "1: $nb\n" ;

#my $nb = multi (\%hash2, 0) ;
#print "$nb\n" ;


===========================================================================
 Patrick DUPRÉ                                 | | email: pdupre at gmx.com
 Laboratoire de Physico-Chimie de l'Atmosphère | |
 Université du Littoral-Côte d'Opale           | |
 Tel.  (33)-(0)3 28 23 76 12                   | | Fax: 03 28 65 82 44
 189A, avenue Maurice Schumann                 | | 59140 Dunkerque, France
===========================================================================


> Sent: Thursday, November 01, 2018 at 3:10 AM
> From: "Pau Amma" <pauamma at gundo.com>
> To: perl <perl at mongueurs.net>
> Subject: Re: [Perl] multi hash
>
> > my %hash1 ;
> > $hash {A} = 1 ;
> > $hash {B} = 2 ;
> >
> > my %hash2 ;
> >
> > $hash {A} {b} = 2 ;
> > $hash {B} {a} = 3 ;
> > $hash {B} {b} = 4 ;
> >
> > my $nb = multi (\%hash1, 0) ;
> > print "$nb\n" ;
> >
> > my $nb = multi (\%hash2, 0) ;
> > print "$nb\n" ;
> >
> > Il faudrait renvoyer 1 pour le 1ier cas et 2 pour le second
> 
> OK, ça ressemble à la  profondeur (aussi appelée hauteur). Y a-t-il une
> raison de ne pas utiliser (par exemple) Tree::Simple et sa méthode
> getHeight? (cf https://metacpan.org/pod/Tree::Simple#Accessor-Methods)
> 
> > > J'ai construis des multi hassh (HoHoHoH...)
> > > dont je voudrais connaitre le nombre de hash.
> >
> > La question me parait un peu vague: s'agit il du nombre de feuilles de
> > l'arbre (car c'en est un, en fin de compte)? du nombre total de noeuds?
> > de la profondeur de l'arbre?
> 
> _______________________________________________
> Perl mailing list
> Perl at mongueurs.net
> http://listes.mongueurs.net/mailman/listinfo/perl
> Attention, les archives sont publiques
>


Plus d'informations sur la liste de diffusion Perl