|
| Hvordan.. self-contained Perl-script Fra : Stig H. Jacobsen |
Dato : 01-07-04 01:35 |
|
Jeg kunne ikke lige finde den danske betegnelse for <subject>.
Men jeg har et Perl-script, som bruger nogle hjemmelavede moduler
og jeg ville gerne pakke script + moduler sammen i én fil, så det
er lidt nemmere at installere hos modtageren.
Så jeg cat'er *.pm + script.pl ud i en fil, mens jeg fjerner
'use' statements for mine egne moduler. Det virker ikke helt -
koks i symbolerne virker det som og jeg har kogt problemet ned
til følgende script:
#!/usr/bin/env perl
package mycurses;
require Exporter;
@ISA = qw( Exporter );
my $xval = 'Happy happy, fun fun';
sub curses_init {
print "Hello, world!\n";
} #curses_init
@EXPORT = qw( &curses_init $xval );
42;
package main;
print "xval = $xval\n";
curses_init();
exit 0;
Kaldet til curses_init() fejler - findes ikke - selv om
curses_init() er eksporteret i mycurses pakken.
Det virker som om jeg mangler den import, som normalt sker når
man use'r noget?
Tilføjer jeg en 'use mycurses' til main i ovenstående, så virker
det - men i lidt større skala, så giver den løsning 'Subroutine
xxx redefined', siden mine forskellige moduler bliver use't flere
steder fra.
Klipper jeg mycurses pakken ud af ovenstående, gemmer i
mycurses.pm og tilføjer 'use mycurses' til main, så virker det
som forventet.
Hvad sker der?
Hvordan laver man et self-contained script? Jeg har søgt på CPAN,
men der var kun nogle fancy ting med kompression og alt muligt.
Det er med Perl 5.8.3 på Mandrake Linux.
--
Stig
(remove the 'no's to send me mail)
| |
Tore Aursand (01-07-2004)
| Kommentar Fra : Tore Aursand |
Dato : 01-07-04 04:34 |
|
On Thu, 01 Jul 2004 00:34:40 +0000, Stig H. Jacobsen wrote:
> Men jeg har et Perl-script, som bruger nogle hjemmelavede moduler og jeg
> ville gerne pakke script + moduler sammen i én fil, så det er lidt
> nemmere at installere hos modtageren.
Ta en titt på PAR-modulen;
< http://cpan.uwinnipeg.ca/module/PAR>
--
Tore Aursand <tore@aursand.no>
"There are three kinds of lies: lies, damn lies, and statistics."
(Benjamin Disraeli)
| |
Stig H. Jacobsen (01-07-2004)
| Kommentar Fra : Stig H. Jacobsen |
Dato : 01-07-04 11:00 |
|
On Thu, 01 Jul 2004 05:33:56 +0200, Tore Aursand wrote:
> Ta en titt på PAR-modulen;
> < http://cpan.uwinnipeg.ca/module/PAR>
Tak, det var vist lige hvad jeg manglede
Men det ser ud til, at den inkluderer alle moduler - altså også
Carp, Exporter, etc. etc.
Ved du om man kan nøjes med specifikke moduler, så den henter
Carp osv. på normal vis fra /usr/lib/perl osv.?
(jeg bruger pp-scriptet)
--
Stig
(remove the 'no's to send me mail)
| |
Tore Aursand (01-07-2004)
| Kommentar Fra : Tore Aursand |
Dato : 01-07-04 12:31 |
|
On Thu, 01 Jul 2004 10:00:08 +0000, Stig H. Jacobsen wrote:
>> Ta en titt på PAR-modulen;
>> < http://cpan.uwinnipeg.ca/module/PAR>
> Tak, det var vist lige hvad jeg manglede
>
> Men det ser ud til, at den inkluderer alle moduler - altså også Carp,
> Exporter, etc. etc.
>
> Ved du om man kan nøjes med specifikke moduler, så den henter Carp
> osv. på normal vis fra /usr/lib/perl osv.?
Jeg vet ikke, dessverre. Selv har jeg aldri brukt PAR, men jeg har hørt
mye fint om den. :)
--
Tore Aursand <tore@aursand.no>
"Leadership is doing what is right when no one is watching." (George
Van Valkenburg)
| |
|
|