[Chicago-talk] Portable Script and library

Steven Lembark lembark at wrkhors.com
Wed Dec 16 13:27:48 PST 2009


On Wed, 16 Dec 2009 14:44:08 -0600
Jay Strauss <me at heyjay.com> wrote:

> Hi,
> 
> I need to build a script, to be able to bring with me from customer to
> customer site.  I can count on running upon a recent version of Perl
> (version will change from customer to customer).  I can not install new CPAN
> modules at their site.  (generally I'm on a heavily firewalled production
> box with no external http/ftp/ip access).   I will be running upon M$
> primarily.
> 
> While at the customer I'll need to be able to make changes to the script as
> needed (and as I find needed new features or bugs).
> 
> I have need for some modules on CPAN like date


You can run the thing with 

    /path/to/perl your-program

which avoids issues in #! paths (no guarantee they will
have Perl in the same place you do.

At that point you can create a local directory with:

    ./bin/
    ./lib/
    ./t/

directories in it. Put anything you need to take with
you -- including your own modules -- under ./lib. At
that point you can start your code with:

    use 5.008;
    use strict;
    use FindBin qw( $Bin );
    use lib "$Bin/../lib';

to include the local library directory:

    cd /blah/blah;
    /path/to/perl  ./bin/frobnicate 'whatever';

will set $Bin to "/blah/blah/bin" and leave you
using "/blah/blah/bin/../lib" for your modules.

Anything you need to take with you can be in 
the lib directory.

Add the same thing to your ./t files and you can
sanity check the thing with "prove" before trying
to run the remaining code.

-- 
Steven Lembark                                            85-09 90th St.
Workhorse Computing                                 Woodhaven, NY, 11421
lembark at wrkhors.com                                      +1 888 359 3508


More information about the Chicago-talk mailing list