On 2011.3.9 10:01 PM, Antonio Bonifati wrote: > I am trying to package some compiled Java anonymous classes > within a Perl package but found it to be impossible. I need > them because my code uses Inline::Java. > > The problem lies in the filenames: e.g. they contain $1 (e.g. > ClassName$1.class). In the Makefile generated by perl Makefile.PL > such file names are not quoted and thus they erroneously become > "ClassName.class" because the special shell variables $1, $2, > ... etc are substituted for empty strings. Is there any cure > for that other than packaging all my classes as JARs? > > Quoting the file names containing a $ in the MANIFEST (e.g. > 'ClassName$1.class', 'ClassName\$1.class', ClassName\$1.class) > does not help here.
A filename with a $ in it in a Makefile is going to fall down the stairs and hit its head on every step. That's very non-trivial to fix. MakeMaker is not careful about quoting or escaping filenames. The simplest way out is to use Module::Build which won't have this problem. -- Robrt: People can't win Schwern: No, but they can riot after the game.