in reply to Re: Modifying Records with XML::SAX::ByRecord
in thread Modifying Records with XML::SAX::ByRecord

It sure makes sense to me, thank you! I'd have to use shift instead of pop to keep the elements in the order they appeared in.
What I ended up doing is very similar to what you proposed:
if ($collecting) { push @event_queue, sub { $self->SUPER::start_element($xml_data); }; }
then, later on I empty the queue by executing the closures:
foreach (@event_queue) { &$_(); }