tristateguy has asked for the wisdom of the Perl Monks concerning the following question:

Hello all:

Long time reader first time posting =)
I need to convert one of my scripts into an .exe file I'm currently using PAR/pp to do that but I'm in a bit of a bind. My script currently requires the use of a home made module which itself requires 3 txt files. So it should look something like:

myscript.pl
myModule.pm
txt1.txt
txt2.txt
txt3.txt

When I run pp -o my.exe myscript.pl it creates the exe but when I try to run it it says "cant find txt1.txt". But this will work if I have the 3 text files in the same directory as the exe.
My thinking here was to pack the 3 text files along with the module into a PAR and rerun pp but I'm getting the same results.

Any suggestions are welcome

Thank you

Tristateguy
-Perl newbie

Replies are listed 'Best First'.
Re: PAR/pp help
by EvanK (Chaplain) on Jul 25, 2007 at 17:12 UTC
    Well, my first thought would be that, since they're part of the PAR package, its looking for them as within the filesystem rather than within the PAR. Not sure how to remedy that directly...

    As a possible workaround, you could embed the contents of the text files into a module and include it in the PAR. For example, using heredocs:

    package IncludedTextFiles; # declare as part of the module namespace our @text; # include file contents inside heredocs... $text[1] = <<'END_OF_FILE'; contents of the first text file... END_OF_FILE $text[2] = <<'END_OF_FILE'; contents of the second text file... END_OF_FILE; $text[3] = <<'END_OF_FILE'; contents of the third text file... END_OF_FILE;
    Then you could just use the supplemental module and access the files by their variable, rather than opening and reading them:
    use IncludedTextFiles; print "First text file was ", length($text[1]), "bytes!";
    It's not the most elegant solution, and perhaps the wiser monks would have a better suggestion...but it should work.

    __________
    Systems development is like banging your head against a wall...
    It's usually very painful, but if you're persistent, you'll get through it.

      EvanK:

      Thanks for pointing out heredocs to me thats exactly what I needed but unable to put into words.

      Thanks again

      Tristateguy
Re: PAR/pp help
by archfool (Monk) on Jul 25, 2007 at 18:45 UTC
    I had the same problem with the PDF modules relying on text files for data instead of making a perl module out of the data or using a __DATA__ section...

    I used the pp -a "path/to/old_filename.txt;internal/path/to/new_filename.txt" option. Multiple -a are allowed.