I think you need PAR

-----Original Message-----
From: Austin Schutz [mailto:[EMAIL PROTECTED] 
Sent: Friday, April 25, 2008 10:43 PM
To: module-authors@perl.org
Subject: Application Building

        Ok, so here's what must be a question with a really simple answer:
how do I write a perl app?

        For example: I want to display a jpeg.


MyApp/script/display.pl:

#!/path/to/perl
use Myapp::Display;
Myapp::Diplay->new()->display('example.jpg');
__END__

MyApp/lib/Myapp/Display.pm
  ...

MyApp/share/example.jpg
  ...

MyApp/Build.PL:
my $build = new Module::Build (
   script_files => [ 'script/display.pl' ],
   jpeg_files => { 'share/example.jpg' => 'share/example.jpg' }
);
$build->add_build_element('jpeg');
$build->create_build_script;

   

        Ok, so now I do:

/path/to/perl ./Build.PL install_base=$HOME/MyApp
./Build install

...
...


        If I put #!perl at the top of display.pl it will have a path to perl
(though not the one I specified), but it won't have "use lib
$HOME/MyApp/lib"
at the top of the script, so it can't run.
        Furthermore, there's no way for the script to know what was used
for install_base, so there's no way for the script to know where the data
file is located.

        This must be something people do, right? Currently I hard code paths
and force the installation to be where I want it, but this seems really
sub-optimal, doesn't work for having test environments, etc.
        I've been considering parsing $0 at the top of the script, is that
what other people do?

        Austin


Reply via email to