will select among 0/GLOB(0x10164414)
will select among 0/ARRAY(0x102fc9cc)
will select among 1/GLOB(0x10164414)
La question est pourquoi la première ligne et la troisième ne sont pas
les mêmes ? Pourquoi une même référence, si elle est fournit directement
ou à travers une place dans un tableau, elle n'est pas traitée de la
même manière ? ( pour la deuxième ligne, IO::Select:add est supposé
accepter aussi des références sur des handles).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Gaborit
À (at) Fri, 11 Feb 2005 15:59:59 +0000, Laurent G écrivait (wrote):
La question est pourquoi la première ligne et la troisième ne sont pas les mêmes ? Pourquoi une même référence, si elle est fournit directement ou à travers une place dans un tableau, elle n'est pas traitée de la même manière ?
Parce qu'il semble que vous appliquez vos connaissances de C à Perl : en Perl, une référence vers un tableau n'est pas la même chose qu'une référence vers son premier élément !
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Fri, 11 Feb 2005 15:59:59 +0000,
Laurent G <laurangere@free.fra> écrivait (wrote):
La question est pourquoi la première ligne et la troisième ne sont pas
les mêmes ? Pourquoi une même référence, si elle est fournit directement
ou à travers une place dans un tableau, elle n'est pas traitée de la
même manière ?
Parce qu'il semble que vous appliquez vos connaissances de C à Perl : en Perl,
une référence vers un tableau n'est pas la même chose qu'une référence vers
son premier élément !
--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Fri, 11 Feb 2005 15:59:59 +0000, Laurent G écrivait (wrote):
La question est pourquoi la première ligne et la troisième ne sont pas les mêmes ? Pourquoi une même référence, si elle est fournit directement ou à travers une place dans un tableau, elle n'est pas traitée de la même manière ?
Parce qu'il semble que vous appliquez vos connaissances de C à Perl : en Perl, une référence vers un tableau n'est pas la même chose qu'une référence vers son premier élément !
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
Nicolas George
Paul Gaborit wrote in message :
Parce qu'il semble que vous appliquez vos connaissances de C à Perl : en Perl, une référence vers un tableau n'est pas la même chose qu'une référence vers son premier élément !
<pedant>
En C non plus !
</pedant>
Paul Gaborit wrote in message <r7ll9vc8eb.fsf@iena.enstimac.fr>:
Parce qu'il semble que vous appliquez vos connaissances de C à Perl : en Perl,
une référence vers un tableau n'est pas la même chose qu'une référence vers
son premier élément !
Parce qu'il semble que vous appliquez vos connaissances de C à Perl : en Perl, une référence vers un tableau n'est pas la même chose qu'une référence vers son premier élément !
<pedant>
En C non plus !
</pedant>
Denis -esp2008-
Bonjour,
une référence vers un tableau n'est pas la même chose qu'une référence vers son premier élément !
<pedant> En C non plus ! </pedant>
Oui mais non.
La référence en Perl s'apparente généralement plus à l'adresse en C qu'à la référence du C ANSI, mais il n'y a pas de totale équivalence de comportement en fait, donc la comparaison est pour le moins hasardeuse.
-- Denis
Bonjour,
une référence vers un tableau n'est pas la même chose qu'une référence vers
son premier élément !
<pedant>
En C non plus !
</pedant>
Oui mais non.
La référence en Perl s'apparente généralement plus à l'adresse en C
qu'à la référence du C ANSI, mais il n'y a pas de totale équivalence
de comportement en fait, donc la comparaison est pour le moins hasardeuse.
une référence vers un tableau n'est pas la même chose qu'une référence vers son premier élément !
<pedant> En C non plus ! </pedant>
Oui mais non.
La référence en Perl s'apparente généralement plus à l'adresse en C qu'à la référence du C ANSI, mais il n'y a pas de totale équivalence de comportement en fait, donc la comparaison est pour le moins hasardeuse.
-- Denis
Paul Gaborit
À (at) Fri, 11 Feb 2005 18:23:33 +0000 (UTC), Nicolas George <nicolas$ écrivait (wrote):
Paul Gaborit wrote in message :
Parce qu'il semble que vous appliquez vos connaissances de C à Perl : en Perl, une référence vers un tableau n'est pas la même chose qu'une référence vers son premier élément !
<pedant>
En C non plus !
</pedant>
Ici, le raisonnement (faux) qui semble être utilisé est le suivant :
1 - Une référence en Perl fonctionne comme un pointeur en C.
2 - L'adresse d'un tableau en C est la même que celle de son premier élément.
3 - L'adresse contenue dans une référence à un tableau Perl devrait être la même que celle contenue dans la référence à son premier élément.
(3) semble pouvoir se déduire de (1) et (2).
Sauf qui ni 1 ni 2 ne sont complétement vrai même si ce n'est pas faux ;-). Et (3) est toujours faux. D'où ma remarque sur la (mauvaise) transposition de connaissances du C vers Perl.
Les références du C (qui n'existent que depuis peu et sont encore rarement utilisées) ne fonctionnent pas du tout comme les références du Perl. Elles ressemblent beaucoup plus aux alias de Perl comme par exemple la variable qui parcours les éléments d'un tableau dans un 'foreach'.
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Fri, 11 Feb 2005 18:23:33 +0000 (UTC),
Nicolas George <nicolas$george@salle-s.org> écrivait (wrote):
Paul Gaborit wrote in message <r7ll9vc8eb.fsf@iena.enstimac.fr>:
Parce qu'il semble que vous appliquez vos connaissances de C à Perl : en
Perl, une référence vers un tableau n'est pas la même chose qu'une
référence vers son premier élément !
<pedant>
En C non plus !
</pedant>
Ici, le raisonnement (faux) qui semble être utilisé est le suivant :
1 - Une référence en Perl fonctionne comme un pointeur en C.
2 - L'adresse d'un tableau en C est la même que celle de son premier
élément.
3 - L'adresse contenue dans une référence à un tableau Perl devrait être
la même que celle contenue dans la référence à son premier élément.
(3) semble pouvoir se déduire de (1) et (2).
Sauf qui ni 1 ni 2 ne sont complétement vrai même si ce n'est pas faux ;-). Et
(3) est toujours faux. D'où ma remarque sur la (mauvaise) transposition de
connaissances du C vers Perl.
Les références du C (qui n'existent que depuis peu et sont encore rarement
utilisées) ne fonctionnent pas du tout comme les références du Perl. Elles
ressemblent beaucoup plus aux alias de Perl comme par exemple la variable qui
parcours les éléments d'un tableau dans un 'foreach'.
--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Fri, 11 Feb 2005 18:23:33 +0000 (UTC), Nicolas George <nicolas$ écrivait (wrote):
Paul Gaborit wrote in message :
Parce qu'il semble que vous appliquez vos connaissances de C à Perl : en Perl, une référence vers un tableau n'est pas la même chose qu'une référence vers son premier élément !
<pedant>
En C non plus !
</pedant>
Ici, le raisonnement (faux) qui semble être utilisé est le suivant :
1 - Une référence en Perl fonctionne comme un pointeur en C.
2 - L'adresse d'un tableau en C est la même que celle de son premier élément.
3 - L'adresse contenue dans une référence à un tableau Perl devrait être la même que celle contenue dans la référence à son premier élément.
(3) semble pouvoir se déduire de (1) et (2).
Sauf qui ni 1 ni 2 ne sont complétement vrai même si ce n'est pas faux ;-). Et (3) est toujours faux. D'où ma remarque sur la (mauvaise) transposition de connaissances du C vers Perl.
Les références du C (qui n'existent que depuis peu et sont encore rarement utilisées) ne fonctionnent pas du tout comme les références du Perl. Elles ressemblent beaucoup plus aux alias de Perl comme par exemple la variable qui parcours les éléments d'un tableau dans un 'foreach'.
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
Laurent G
Bonjour Je me réponds à moi-même, des fois que quelqu'un vienne à se confronter à ce problème dans un proche avenir : C'est une des FAQ de comp.lang.perl.misc, une référence ne peut, de base, être utilisée de façon sûre, comme clé dans une table (transformée irréversiblement en chaîne). La doc indique alors d'utiliser le paquetage (?) Tie::RefHash. À+
Laurent G wrote:
Bonjour. Je ne suis pas un spécialiste du perl (tiens donc ;-) ) et la situation suivante me déroute. Soit, sous cygwin et perl5.8.6, le code :
will select among 0/GLOB(0x10164414) will select among 0/ARRAY(0x102fc9cc) will select among 1/GLOB(0x10164414)
La question est pourquoi la première ligne et la troisième ne sont pas les mêmes ? Pourquoi une même référence, si elle est fournit directement ou à travers une place dans un tableau, elle n'est pas traitée de la même manière ? ( pour la deuxième ligne, IO::Select:add est supposé accepter aussi des références sur des handles).
D'avance merci.
Bonjour
Je me réponds à moi-même, des fois que quelqu'un vienne à se confronter
à ce problème dans un proche avenir :
C'est une des FAQ de comp.lang.perl.misc,
une référence ne peut, de base, être utilisée de façon sûre, comme clé
dans une table (transformée irréversiblement en chaîne).
La doc indique alors d'utiliser le paquetage (?) Tie::RefHash.
À+
Laurent G wrote:
Bonjour.
Je ne suis pas un spécialiste du perl (tiens donc ;-) )
et la situation suivante me déroute. Soit, sous cygwin et perl5.8.6, le
code :
will select among 0/GLOB(0x10164414)
will select among 0/ARRAY(0x102fc9cc)
will select among 1/GLOB(0x10164414)
La question est pourquoi la première ligne et la troisième ne sont pas
les mêmes ? Pourquoi une même référence, si elle est fournit directement
ou à travers une place dans un tableau, elle n'est pas traitée de la
même manière ? ( pour la deuxième ligne, IO::Select:add est supposé
accepter aussi des références sur des handles).
Bonjour Je me réponds à moi-même, des fois que quelqu'un vienne à se confronter à ce problème dans un proche avenir : C'est une des FAQ de comp.lang.perl.misc, une référence ne peut, de base, être utilisée de façon sûre, comme clé dans une table (transformée irréversiblement en chaîne). La doc indique alors d'utiliser le paquetage (?) Tie::RefHash. À+
Laurent G wrote:
Bonjour. Je ne suis pas un spécialiste du perl (tiens donc ;-) ) et la situation suivante me déroute. Soit, sous cygwin et perl5.8.6, le code :
will select among 0/GLOB(0x10164414) will select among 0/ARRAY(0x102fc9cc) will select among 1/GLOB(0x10164414)
La question est pourquoi la première ligne et la troisième ne sont pas les mêmes ? Pourquoi une même référence, si elle est fournit directement ou à travers une place dans un tableau, elle n'est pas traitée de la même manière ? ( pour la deuxième ligne, IO::Select:add est supposé accepter aussi des références sur des handles).
D'avance merci.
Paul Gaborit
À (at) Mon, 14 Feb 2005 10:49:01 +0000, Laurent G écrivait (wrote):
C'est une des FAQ de comp.lang.perl.misc, une référence ne peut, de base, être utilisée de façon sûre, comme clé dans une table (transformée irréversiblement en chaîne). La doc indique alors d'utiliser le paquetage (?) Tie::RefHash.
Désolé pour mes réponses précédentes qui étaient complètement à côté de votre problème (je n'avais fait que survoler votre code rapidement). Mais tout va bien puisque vous avez trouvé votre réponse tout seul ;-)
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Mon, 14 Feb 2005 10:49:01 +0000,
Laurent G <laurangere@free.fra> écrivait (wrote):
C'est une des FAQ de comp.lang.perl.misc,
une référence ne peut, de base, être utilisée de façon sûre, comme clé
dans une table (transformée irréversiblement en chaîne).
La doc indique alors d'utiliser le paquetage (?) Tie::RefHash.
Désolé pour mes réponses précédentes qui étaient complètement à côté de votre
problème (je n'avais fait que survoler votre code rapidement). Mais tout va
bien puisque vous avez trouvé votre réponse tout seul ;-)
--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>
Perl en français - <http://www.enstimac.fr/Perl/>
À (at) Mon, 14 Feb 2005 10:49:01 +0000, Laurent G écrivait (wrote):
C'est une des FAQ de comp.lang.perl.misc, une référence ne peut, de base, être utilisée de façon sûre, comme clé dans une table (transformée irréversiblement en chaîne). La doc indique alors d'utiliser le paquetage (?) Tie::RefHash.
Désolé pour mes réponses précédentes qui étaient complètement à côté de votre problème (je n'avais fait que survoler votre code rapidement). Mais tout va bien puisque vous avez trouvé votre réponse tout seul ;-)
-- Paul Gaborit - <http://www.enstimac.fr/~gaborit/> Perl en français - <http://www.enstimac.fr/Perl/>