On Tue, 11 Oct 2005 12:02:31 +0200, Paul Gaborit wrote:
si j'ai $a = [], ma première idée est de faire une pirouette du style $size = @{$a} et le dernier élément est $size-1
C'est pareil :
$#{$a}
Ah tiens j'avais jamais pensé à ça. Ceci dit, bizarrement, il semblerait que $#{$a} soit plus lent que scalar @$a.
Jacques. -- Oxado http://www.oxado.com/
Paul Gaborit
À (at) Tue, 11 Oct 2005 18:08:41 +0200, "Jacques Caron" écrivait (wrote):
Ah tiens j'avais jamais pensé à ça. Ceci dit, bizarrement, il semblerait que $#{$a} soit plus lent que scalar @$a.
Quelques tests rapides (donc non fiables ;-) ) montrent effectivement une différence de performances : elle est du simple au double en version 5.6.x et de l'ordre de +10% en version 5.8.x.
Peut-être est-ce dû à la prise en compte de la variable $[ (l'indice du premier élément)...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 11 Oct 2005 18:08:41 +0200,
"Jacques Caron" <jc@oxado.com> écrivait (wrote):
Ah tiens j'avais jamais pensé à ça. Ceci dit, bizarrement, il
semblerait que $#{$a} soit plus lent que scalar @$a.
Quelques tests rapides (donc non fiables ;-) ) montrent effectivement
une différence de performances : elle est du simple au double en
version 5.6.x et de l'ordre de +10% en version 5.8.x.
Peut-être est-ce dû à la prise en compte de la variable $[ (l'indice
du premier élément)...
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 11 Oct 2005 18:08:41 +0200, "Jacques Caron" écrivait (wrote):
Ah tiens j'avais jamais pensé à ça. Ceci dit, bizarrement, il semblerait que $#{$a} soit plus lent que scalar @$a.
Quelques tests rapides (donc non fiables ;-) ) montrent effectivement une différence de performances : elle est du simple au double en version 5.6.x et de l'ordre de +10% en version 5.8.x.
Peut-être est-ce dû à la prise en compte de la variable $[ (l'indice du premier élément)...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Jacques Caron
On Tue, 11 Oct 2005 18:28:47 +0200, Paul Gaborit wrote:
Quelques tests rapides (donc non fiables ;-) ) montrent effectivement une différence de performances : elle est du simple au double en version 5.6.x et de l'ordre de +10% en version 5.8.x.
J'ai trouvé presque 20% en 5.8.6.
Peut-être est-ce dû à la prise en compte de la variable $[ (l'indice du premier élément)...
Un (scalar @$a)-1+$[ est effectivement du même niveau que $#{$a}.
Jacques. -- Oxado http://www.oxado.com/
On Tue, 11 Oct 2005 18:28:47 +0200, Paul Gaborit
<Paul.Gaborit@invalid.invalid> wrote:
Quelques tests rapides (donc non fiables ;-) ) montrent effectivement
une différence de performances : elle est du simple au double en
version 5.6.x et de l'ordre de +10% en version 5.8.x.
J'ai trouvé presque 20% en 5.8.6.
Peut-être est-ce dû à la prise en compte de la variable $[ (l'indice
du premier élément)...
Un (scalar @$a)-1+$[ est effectivement du même niveau que $#{$a}.
On Tue, 11 Oct 2005 18:28:47 +0200, Paul Gaborit wrote:
Quelques tests rapides (donc non fiables ;-) ) montrent effectivement une différence de performances : elle est du simple au double en version 5.6.x et de l'ordre de +10% en version 5.8.x.
J'ai trouvé presque 20% en 5.8.6.
Peut-être est-ce dû à la prise en compte de la variable $[ (l'indice du premier élément)...
Un (scalar @$a)-1+$[ est effectivement du même niveau que $#{$a}.
Jacques. -- Oxado http://www.oxado.com/
Paul Gaborit
À (at) Tue, 11 Oct 2005 18:57:16 +0200, "Jacques Caron" écrivait (wrote):
Peut-être est-ce dû à la prise en compte de la variable $[ (l'indice du premier élément)...
Un (scalar @$a)-1+$[ est effectivement du même niveau que $#{$a}.
C'est donc bien ça.
On peut écrire @$a-1 ou @$a-1+$[ (sans le 'scalar'), Perl fera tout seul la conversion 'scalar' puisque le contexte lui impose...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Tue, 11 Oct 2005 18:57:16 +0200,
"Jacques Caron" <jc@oxado.com> écrivait (wrote):
Peut-être est-ce dû à la prise en compte de la variable $[ (l'indice
du premier élément)...
Un (scalar @$a)-1+$[ est effectivement du même niveau que $#{$a}.
C'est donc bien ça.
On peut écrire @$a-1 ou @$a-1+$[ (sans le 'scalar'), Perl fera
tout seul la conversion 'scalar' puisque le contexte lui impose...
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>