passer un tableau en parametre dans un sub? - Perl - Programmation
Marsh Posté le 13-11-2006 à 15:47:42
il faut que tu passes une référence sur ta hash!
Code :
|
Attention quand tu as une reference sur un hash tu accèdes a tes élements différement:
Code :
|
edit: c#n de forum qui bouffe les slashs
Marsh Posté le 13-11-2006 à 15:56:55
et dans ma fonction sub
je declare comment mon hash ???
comment je lui dit que je vais le passer en parametre ?
pour var1 j'utilise shift et pour mon hash ?
Marsh Posté le 13-11-2006 à 16:06:05
bin var1 c'est le premier paramètre que tu passes à ta fonction en l'occurence une référence sur ta hash
C'est bien pour ça qu'ensuite je t'ai donné les deux lignes qui expliquent comment se servir d'une ref.
Bon aller un exemple qui ajoute 4 à toutes les valeurs d'une hash:
Code :
|
edit: grrr de \
Marsh Posté le 13-11-2006 à 16:16:33
ok
j'ai fait la meme chose
mais il bloque à cette ligne, il me dit que j'ai une erreur de synthaxe
Citation : if ( exists %$monhash{$nom} ) { |
Marsh Posté le 13-11-2006 à 16:26:48
je te conseille de (re)lire mon premier post où je t'explique comment acceder à un element d'une reference de hash.
Marsh Posté le 14-11-2006 à 00:29:18
donny3, ta syntaxe marche aussi mais faut des parentheses autour de %$monhash. Mais bon la bonne facon de faire c'est $monhash->{$nom} comme anapajari a dit.
Marsh Posté le 14-11-2006 à 10:02:26
matafan a écrit : donny3, ta syntaxe marche aussi mais faut des parentheses autour de %$monhash. Mais bon la bonne facon de faire c'est $monhash->{$nom} comme anapajari a dit. |
Euhh nan hein ( enfin j'ai jamais vu, ptêt que je me trompe mais j'y crois pas trop).
%$ c'est pour déréférencer ta hash entière, tu peux pas accèder à un element comme ça même en rajoutant des parenthèses.
La syntaxe qui se rapproche le plus de ce que tu dis ça serait:
Code :
|
Mais perso je la trouve particulierement incompréhensible.
Marsh Posté le 13-11-2006 à 15:22:11
salut,
J'aurai savoir si quelqu'un serait comment faire pour passer un tableau hash en parametre dans une sub routine ??
j'ai essayer : %tab = @_ mais se ne fonctionne pas.
ex :
sub test {
var1 = shift;
ici je veux appeler un tableau hash
...
}
Merci.