URL: https://linuxfr.org/forums/programmation-perl/posts/probl%C3%A8me-avec-netjabber Title: Problème avec Net::Jabber Authors: Manger sur pattes Date: 2006年04月20日T12:59:33+02:00 Tags: debian Score: 0 J'ai un problème avec Perl et Net::Jabber. Voici mon code : #!/usr/bin/perl use Net::Jabber; $jabber = new Net::Jabber::Client(); $jabber->Connect(hostname => "fritalk.com", £spaces£ £/spaces£port => 5222, £spaces£ £/spaces£timeout => 90, £spaces£ £/spaces£connectiontype => "tcpip", £spaces£ £/spaces£ssl => 0); @r = $jabber->AuthSend(username => "yannbng", £spaces£ £/spaces£password => "********", £spaces£ £/spaces£resource => "Perl-Net::Jabber", £spaces£ £/spaces£register => 0); $SIG{ALRM} = \&qqch; $jabber->SetCallBacks( presence => \&handle_presence, £spaces£ £/spaces£message => \&handle_message ); @contacts = $jabber->RosterGet(); $jabber->PresenceSend(); qqch(); print "Connecté !"; while(defined($jabber->Process())) { } sub qqch { £spaces£ £/spaces£$jabber->Process(1); } sub handle_message { £spaces£ £/spaces£**my $message = new Net::Jabber::Message(($_[1], $_[0]));** # my $message = new Net::Jabber::Message(@_); £spaces£ £/spaces£my $jid = $message->GetFrom(); £spaces£ £/spaces£my $subject = $message->GetSubject(); £spaces£ £/spaces£my $body = $message->GetBody(); £spaces£ £/spaces£my $type = $message->GetType(); £spaces£ £/spaces£print "Message de $jid\n$subject\n$body\n$type"; £spaces£ £/spaces£$msg = Net::Jabber::Message->new(); £spaces£ £/spaces£$msg->SetMessage ( type => "message", £spaces£ £/spaces£subject => "Test", £spaces£ £/spaces£body => "test !"); £spaces£ £/spaces£$msg->SetTo($jid); £spaces£ £/spaces£$jabber->Send($mdg); } sub handle_presence { } $jabber->Disconnect(); Lors de l'exécution, tout se passe bien au début, mais lorsque je reçois un message, le programme plante avec le message suivant (au niveau de la ligne en gras) : Can't call method "XPath" on an undefined value at /usr/share/perl5/Net/XMPP/Stanza.pm line 556. Si j'utilise l'alternative (@_ au lieu de ($_[0], $_[1])), j'obtiens le message suivant : Can't call method "isa" without a package or object reference at /usr/share/perl5/Net/XMPP/Stanza.pm line 252. Une recherche google m'indique que je ne suis pas le seul à avoir ce problème, mais je ne vois pas de réponses.. Que faire? Je suis sous Debian Unstable avec Perl 5.8.4 et Net::Jabber 2.0