This software establishes an XML Stream connection and performs data parsing on the returned results.
One of the primary features of XML::Stream is that it allows users to define a central callback function that can handle the tags received from the server. These tags are passed in the format specified at instantiation time. When the closing tag of an item is detected, the tree is complete and passed to the callback function. What the user decides to do with it from there is entirely up to them.
For a more detailed description of how this module works and the data structure it returns, users can view the source of Stream.pm and refer to the comprehensive description at the end of the file.
It should be noted that the parser offered by XML::Stream::Parser and other Perl parsers is synchronous. So if the user is parsing a packet and calls a user-defined callback function, the parser is blocked until the callback function finishes. This implies that users cannot operate on a packet, send another one out, and wait for a response to that packet. Although threading can potentially solve this issue, Perl threading is still not entirely up to par. This matter will be revisited in future iterations of this module.
Version 1.22: N/A