[Toulouse-pm] hash or array ?

Michel Rodriguez mirod at xmltwig.com
Sun Feb 8 14:32:43 CST 2004


On Thu, 5 Feb 2004, Benoit Fleury wrote:

> je ne sais pas si c'est le lieu pour ce genre de questions mais je ne
> sais pas à qui m'adresser :)
> Débutant en PERL, je lis et écris quelques scripts pour mon apprentissage.
> Je me suis souvent posé la question suivante : dois-je preferer un hash
> ou un tableau pour mes structures de donnees ?
> mes éléments de réponse :
> * hash : plus lisible au niveau du code, moins rapide ?
> * array : moins lisible, plus rapide ?
> Donc :
> La question a-t-elle lieu de se poser ? (deja :) )
> Si oui, comment faire un choix ?

Salut,

La question n'a souvent pas lieu de se poser. Les donnees suggerent
souvent d'elles-memes si tu dois utiliser un hash ou un tableau. Si tes
donnees sont du genre identifiant (unique) => valeur, alors c'est un hash,
sinon c'est un tableau.

Un des seuls cas ou on a vraiment le choix c'est pour stocker l'equivalent
de struct C. On peut soit utiliser un hash:my %struct= ( field1 => 'val1',
field2 => 'val2'), soit un tableau: my( $FIELD1, $FIELD2)= (0..1); my
@struct=( 'val1', 'val2'). Je preferes un hash, c'est plus naturel en
Perl, mais c'est vraiment comme on veut, une des devises de Perl est
TIMTOWTDI: There Is More Than One Way To Do It.

Une remarque importante quand meme: ca m'etonnerais que tu tombes sur un
cas ou la vitesse d'acces a un element d'un hash ou d'un tableau soit
importante. Si tu veux que ton programme aille vite, commence par regarder
si tes algos sont performants, si ils sont optimises tu peux passer de
Perl a du C. Mais remplacer les hash par des tableaux ne te fera jamais
gagner significativement en vitesse (je parle d'esperience ;--(

--
Michel Rodriguez
Perl & XML
http://www.xmltwig.com




More information about the Toulouse-pm mailing list