Another way would be to make the subroutine curried (that is expecting to get the parameters separately, not all at once):
foreach my $file (@files){
# set up the XML parser:
my $twig= XML::Twig->new(
twig_handlers => { topicref => topicref_processing($file),
xref => topicref_processing($file) },
);
$twig->parsefile($file);
$twig->purge;
}
sub topicref_processing {
my ($file) = @_;
return sub {
my($twig, $topicref) = @_;
my($atts) = $topicref->atts();
if($$atts{'keyref'}){
### associate this keyref with $file
}
}
}
Jenda
Enoch was right!
Enjoy the last years of Rome.