The * sigil refers to Typeglobs and Filehandles. In this case, the author wanted to pass the newly-opened XML filehandle into a subroutine, and old fashioned Perl didn't have a particularly clean way to pass one. Nowadays, you'd probably write that as:
in reply to question about star character in Perl
open (my $XML, "<", $xml_file) or die "File open failed ($xml_file):
The indirect filehandle makes passing and stashing much cleaner (IMHO). See also open and Indirect Filehandles in perlopentut.
#11929 First ask yourself `How would I do this without a computer?' Then have the computer do it the same way.