/ Forside / Teknologi / Udvikling / Perl / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Perl
#NavnPoint
bjarneA 141
poul_from 50
soccer 30
Nicknack 14
Tmpj 0
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)

Søg
Reklame
Statistik
Spørgsmål : 177414
Tips : 31962
Nyheder : 719565
Indlæg : 6407849
Brugere : 218876

Månedens bedste
Årets bedste
Sidste års bedste