Fri Sep 05 10:39:56 2008: Request 38067 was acted upon.
Transaction: Correspondence added by SMUELLER
       Queue: PAR-Packer
     Subject: Can't use XML::SAX in a PAR::Packer standalone due to 
ParserDetails.ini problem
   Broken in: (no value)
    Severity: (no value)
       Owner: Nobody
  Requestors: [EMAIL PROTECTED]
      Status: open
 Ticket <URL: http://rt.cpan.org/Ticket/Display.html?id=38067 >


I don't have a general fix for this, but I'd like to note that this is
*not* the case for "normal" pp-generated executables. If you include the
INI file in the package, it'll be normally extracted and found.

Only if you use XML::SAX directly from a .par file or from an executable
which was built with the --clean option, it won't extract the INI.

Personally, I think it's a pretty bad idea to put any configration files
in Perl's module path hierarchy, but I may be biased.

One possible (but XML-SAX-side) fix would be to add a few lines to the
code that searches for the INI file:

If the search fails, check whether PAR is loaded and if so, have it try
to search in any loaded .par files for the INI file. Untested:
...
my $fh = gensym();
if (!open($fh, File::Spec->catfile($dir, "SAX", PARSER_DETAILS))) {
  my $path = "lib/XML/SAX/".PARSER_DETAILS();
  my $ini_text;
  if ( exists $INC{"PAR.pm"} and defined($ini_text =
PAR::read_file($path) ) {
    # do stuff
  }
  else {
    XML::SAX->do_warn("could not find " . PARSER_DETAILS . " in
$dir/SAX\n");
  return $class;
}

Reply via email to