<P>After some more testing, I got the impression that the following callback logic would work.&nbsp; Getting the &lt;item&gt;s does not seem to work.&nbsp; Has anybody ever made this work before?? 
<P>sub InIQ<BR>{<BR>&nbsp;my $sid = shift;<BR>&nbsp;my $iq = shift; 
<P>&nbsp;my $id = $iq-&gt;GetID();<BR>&nbsp;print "id = $id\n"; # works 
<P>&nbsp;my $type = $iq-&gt;GetType();<BR>&nbsp;print "type = $type\n"; #works 
<P>&nbsp;my $xmlns = $iq-&gt;GetQueryXMLNS();<BR>&nbsp;print "xmlns = $xmlns\n"; #works 
<P>&nbsp;foreach my $query ($iq-&gt;GetQuery-&gt;GetItems) {<BR>&nbsp;&nbsp;print ("JID = $query-&gt;GetItem()-&gt;GetJID\n"); # prints a hash<BR>&nbsp;&nbsp;print ("Name = $query-&gt;GetItem()-&gt;GetName\n");&nbsp;&nbsp;# prints a hash<BR>&nbsp;&nbsp;print ("Subscription = $query-&gt;GetItem()-&gt;GetSubscription\n"); # prints a hash<BR>&nbsp;&nbsp;print ("Group = $query-&gt;GetItem()-&gt;GetGroup[0]\n"); # prints a hash<BR>&nbsp;}<BR>} 
<P>&nbsp;<B><I>rebbaj rebbaj &lt;rebbaj2000@yahoo.co.uk&gt;</I></B> wrote: 
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">
<P>Thanks Matt and Chris for the replies. 
<P>It seemed reasonable that one could&nbsp;write an algorighm as follows with the Net::Jabber pm.&nbsp; What would the XXXX's be?&nbsp; I would also like to do this with the returned presence data...<BR>----------------------------------&nbsp; <BR>use Net::Jabber qw();<BR><BR>my $Connection = new Net::Jabber::Client();<BR>$Connection-&gt;SetCallBacks(iq=&gt;\&amp;InIQ); 
<P>#&nbsp; request the roster from the server<BR>my $iq_req = Net::Jabber::IQ-&gt;new();<BR>$iq_req-&gt;SetIQ(type=&gt;"get", id=&gt;"mpt_1");</P>
<P># is there a native call to do this?<BR>$iq_req-&gt;InsertRawXML('&lt;query xmlns="jabber:iq:roster"/&gt;');<BR><BR>$Connection-&gt;Send($iq_req);</P>
<P>while(defined($Connection-&gt;Process())) { } 
<P>sub InIQ # callback routine<BR>{<BR>&nbsp;my $sid = shift;<BR>&nbsp;my $iq = shift;<BR>&nbsp;$roster = $iq-&gt;XXXXXX(); # what should I be calling here? 
<P>&nbsp;foreach $item (XXXXXXX) {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $item-&gt;XXXXX, "\n"; # print jid<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $item-&gt;XXXXX, "\n"; # print name<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $item-&gt;XXXXX, "\n"; # print ask<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $item-&gt;XXXXX, "\n"; # print subscribe<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print $item-&gt;XXXXX, "\n"; # print&nbsp;group<BR>} 
<P>} 
<P>&nbsp;<B><I>Chris Wilkes &lt;cwilkes-jabber@ladro.com&gt;</I></B> wrote: 
<BLOCKQUOTE style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #1010ff 2px solid">On Sat, Jan 25, 2003 at 11:55:46PM +0000, rebbaj rebbaj wrote:<BR>&gt; <BR>&gt; I am trying to write a routine in Perl where I can send a iq roster<BR>&gt; request and then parse through all the responses such that I can put<BR>&gt; them in an array. While I could do this with a call such as "my<BR>&gt; $roster = $iq-&gt;GetXML()" followed by a bunch of regular expressions,<BR>&gt; this seems painfull.<BR><BR>What Perl module are you using to do the "$iq-&gt;GetXML()"? If you send<BR>me your code that does that I can add code to split out the results.</BLOCKQUOTE>
<P>
<P><BR>
<HR SIZE=1>
<A href="http://uk.yahoo.com/mail/tagline_xtra/?http://uk.docs.yahoo.com/mail_storage.html"><B><FONT face=Arial size=2>With Yahoo! Mail you can get a bigger mailbox -- choose a size that fits your needs</FONT></B></A><BR></BLOCKQUOTE><p><p><br><hr size=1><a href="http://uk.yahoo.com/mail/tagline_xtra/?http://uk.docs.yahoo.com/mail_storage.html"><b><font face="Arial" size="2">With Yahoo! Mail you can get a bigger mailbox -- choose a size that fits your needs</font></b></a><br>