Je fais un bot IRC en Perl actuellement avec le module
POE::Component::IRC.
En local, sur Win, j'utilisais ceci au d=E9but des fonctions pour
r=E9cup=E9rer les arguments pass=E9s :
my ($who, $tgt, $msg) =3D @_[ ARG0, ARG1, ARG2 ];
(c'est ce qui est conseill=E9 dans l'aide, ils mettent leurs exemples
comme ca.. : POE ->
http://search.cpan.org/~bingos/POE-Component-IRC-4.69/lib/POE/Component/IRC=
.pm
)
J'ai pass=E9 mon bot sur un shell, tous les modules n=E9cessaires sont
charg=E9s, mais cette syntaxe ne fonctionne pas :
Argument "ARG0" isn't numeric in array slice at Bot.pl line 228 (#1)
(idem pour ARG1 ARG2)
Sur Win comme sur le shell, la version de Perl est 5.8.7 ...
Comment puis je faire pour que ca marche m=EAme sur le shell ? Merci
d'avance.
À (at) 9 Oct 2005 04:39:14 -0700, "Pada" écrivait (wrote): [...]
my ($who, $tgt, $msg) = @_[ ARG0, ARG1, ARG2 ];
my ($who, $tgt, $msg) = @_[0, 1, 2 ];
ou
my ($who, $tgt, $msg) = @_[0..2];
ou
my ($who, $tgt, $msg) = @_;
La ligne donnée dans le SYNOSPIS ne peut pas fonctionner...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Patrick Mevzek
À (at) 9 Oct 2005 04:39:14 -0700, "Pada" écrivait (wrote): [...]
my ($who, $tgt, $msg) = @_[ ARG0, ARG1, ARG2 ];
my ($who, $tgt, $msg) = @_[0, 1, 2 ];
Non, et pas non plus les autres solutions.
La ligne donnée dans le SYNOSPIS ne peut pas fonctionner...
Pourquoi ? Les constantes sont définies dans POE::Session et classiques en POE sub ARG0 () { 9 } sub ARG1 () { 10 } sub ARG2 () { 11 }
etc...
Où l'on voit donc d'ailleurs que ARG0 != 0, ARG1 !=1, etc...
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
À (at) 9 Oct 2005 04:39:14 -0700,
"Pada" <jb1030@wanadoo.fr> écrivait (wrote):
[...]
my ($who, $tgt, $msg) = @_[ ARG0, ARG1, ARG2 ];
my ($who, $tgt, $msg) = @_[0, 1, 2 ];
Non, et pas non plus les autres solutions.
La ligne donnée dans le SYNOSPIS ne peut pas fonctionner...
Pourquoi ?
Les constantes sont définies dans POE::Session et classiques en POE
sub ARG0 () { 9 }
sub ARG1 () { 10 }
sub ARG2 () { 11 }
etc...
Où l'on voit donc d'ailleurs que ARG0 != 0, ARG1 !=1, etc...
--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
À (at) 9 Oct 2005 04:39:14 -0700, "Pada" écrivait (wrote): [...]
my ($who, $tgt, $msg) = @_[ ARG0, ARG1, ARG2 ];
my ($who, $tgt, $msg) = @_[0, 1, 2 ];
Non, et pas non plus les autres solutions.
La ligne donnée dans le SYNOSPIS ne peut pas fonctionner...
Pourquoi ? Les constantes sont définies dans POE::Session et classiques en POE sub ARG0 () { 9 } sub ARG1 () { 10 } sub ARG2 () { 11 }
etc...
Où l'on voit donc d'ailleurs que ARG0 != 0, ARG1 !=1, etc...
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Patrick Mevzek
J'ai passé mon bot sur un shell, tous les modules nécessaires sont chargés, mais cette syntaxe ne fonctionne pas :
Argument "ARG0" isn't numeric in array slice at Bot.pl line 228 (#1) (idem pour ARG1 ARG2)
Un use POE::Session; quelque part, devrait résoudre le problème.
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
J'ai passé mon bot sur un shell, tous les modules nécessaires sont
chargés, mais cette syntaxe ne fonctionne pas :
Argument "ARG0" isn't numeric in array slice at Bot.pl line 228 (#1)
(idem pour ARG1 ARG2)
Un
use POE::Session;
quelque part, devrait résoudre le problème.
--
Patrick Mevzek . . . . . . Dot and Co (Paris, France)
<http://www.dotandco.net/> <http://www.dotandco.com/>
Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
J'ai passé mon bot sur un shell, tous les modules nécessaires sont chargés, mais cette syntaxe ne fonctionne pas :
Argument "ARG0" isn't numeric in array slice at Bot.pl line 228 (#1) (idem pour ARG1 ARG2)
Un use POE::Session; quelque part, devrait résoudre le problème.
-- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news>
Paul Gaborit
À (at) Mon, 10 Oct 2005 14:35:37 +0200, Patrick Mevzek écrivait (wrote):
À (at) 9 Oct 2005 04:39:14 -0700, "Pada" écrivait (wrote): [...]
my ($who, $tgt, $msg) = @_[ ARG0, ARG1, ARG2 ];
my ($who, $tgt, $msg) = @_[0, 1, 2 ];
Non, et pas non plus les autres solutions.
...Exact...
La ligne donnée dans le SYNOSPIS ne peut pas fonctionner...
Pourquoi ? Les constantes sont définies dans POE::Session et classiques en POE
Ça m'apprendra à lire une doc trop rapidemement... Des noms entièrement en majuscules auraient du me mettre la puce à l'oreille (ce sont en général des constantes ou des filehandle).
Le PO doit avoir oublié le 'use ...' qui va bien :
use POE qw(Component::IRC);
(tiré du SYNOSPIS)
sub ARG0 () { 9 } sub ARG1 () { 10 } sub ARG2 () { 11 }
etc...
Où l'on voit donc d'ailleurs que ARG0 != 0, ARG1 !=1, etc...
Sur la version que je viens d'installer pour tester, ARG0 vaut 10, ARG1 vaut 11, etc. Il est donc *très* fortement conseillé d'utiliser ces constantes (ARG0, ARG1...) au lieu des valeurs directes (10, 11,...) puisqu'elles peuvent changer d'une implémentation/version à une autre. ;-)
Merci pour la mise au point.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 10 Oct 2005 14:35:37 +0200,
Patrick Mevzek <pm-N200510@nospam.dotandco.com> écrivait (wrote):
À (at) 9 Oct 2005 04:39:14 -0700,
"Pada" <jb1030@wanadoo.fr> écrivait (wrote):
[...]
my ($who, $tgt, $msg) = @_[ ARG0, ARG1, ARG2 ];
my ($who, $tgt, $msg) = @_[0, 1, 2 ];
Non, et pas non plus les autres solutions.
...Exact...
La ligne donnée dans le SYNOSPIS ne peut pas fonctionner...
Pourquoi ?
Les constantes sont définies dans POE::Session et classiques en POE
Ça m'apprendra à lire une doc trop rapidemement... Des noms
entièrement en majuscules auraient du me mettre la puce à l'oreille
(ce sont en général des constantes ou des filehandle).
Le PO doit avoir oublié le 'use ...' qui va bien :
use POE qw(Component::IRC);
(tiré du SYNOSPIS)
sub ARG0 () { 9 }
sub ARG1 () { 10 }
sub ARG2 () { 11 }
etc...
Où l'on voit donc d'ailleurs que ARG0 != 0, ARG1 !=1, etc...
Sur la version que je viens d'installer pour tester, ARG0 vaut 10,
ARG1 vaut 11, etc. Il est donc *très* fortement conseillé d'utiliser
ces constantes (ARG0, ARG1...) au lieu des valeurs directes (10,
11,...) puisqu'elles peuvent changer d'une implémentation/version à
une autre. ;-)
Merci pour la mise au point.
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Perl en français - <http://perl.enstimac.fr/>
À (at) Mon, 10 Oct 2005 14:35:37 +0200, Patrick Mevzek écrivait (wrote):
À (at) 9 Oct 2005 04:39:14 -0700, "Pada" écrivait (wrote): [...]
my ($who, $tgt, $msg) = @_[ ARG0, ARG1, ARG2 ];
my ($who, $tgt, $msg) = @_[0, 1, 2 ];
Non, et pas non plus les autres solutions.
...Exact...
La ligne donnée dans le SYNOSPIS ne peut pas fonctionner...
Pourquoi ? Les constantes sont définies dans POE::Session et classiques en POE
Ça m'apprendra à lire une doc trop rapidemement... Des noms entièrement en majuscules auraient du me mettre la puce à l'oreille (ce sont en général des constantes ou des filehandle).
Le PO doit avoir oublié le 'use ...' qui va bien :
use POE qw(Component::IRC);
(tiré du SYNOSPIS)
sub ARG0 () { 9 } sub ARG1 () { 10 } sub ARG2 () { 11 }
etc...
Où l'on voit donc d'ailleurs que ARG0 != 0, ARG1 !=1, etc...
Sur la version que je viens d'installer pour tester, ARG0 vaut 10, ARG1 vaut 11, etc. Il est donc *très* fortement conseillé d'utiliser ces constantes (ARG0, ARG1...) au lieu des valeurs directes (10, 11,...) puisqu'elles peuvent changer d'une implémentation/version à une autre. ;-)
Merci pour la mise au point.
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> Perl en français - <http://perl.enstimac.fr/>
Pada
Merci beaucoup pour ces infos, ca semble marcher désormais (je suis reparti du bot de base fourni avec use POE qw(Component::IRC); et j'ai rajoute POE::Session et ca roule)
Merci beaucoup pour ces infos, ca semble marcher désormais
(je suis reparti du bot de base fourni avec use POE qw(Component::IRC);
et j'ai rajoute POE::Session et ca roule)
Merci beaucoup pour ces infos, ca semble marcher désormais (je suis reparti du bot de base fourni avec use POE qw(Component::IRC); et j'ai rajoute POE::Session et ca roule)