Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]7235[/thread]

perlxx.dll: Existenzgrund? Selbst verwenden?



<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten
jemand
 2005-08-28 00:49
#57421 #57421
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
Hallo,
da ich mehrere Perlprogramme auch Leuten die kein Perl haben(selbst schuld...) geben möchte überlege ich gerade wie ich Perl zu den Programmen hinzupacken kann. Da wäre ja Par, perl2exe uvm die den Interpreter mit in die Exe packen. Da ich mehrere Programme habe, wäre es aber wohl praktischer ein Perl-packet zu machen, das dann nur die nötigen Dateien beeinhaltet(perl.exe, was sonst noch?) und die Programme einfach als Bat(perl2bat is nichts schlecht find ich).
Dann hab ich mich aber gefragt für was die perlxx.dll eigentlich da ist, denn die wird ja auch von perl2exe verwendet. Kann man eine Exe machen die dann die perlxx.dll verwendet und somit den interpreter darstellt oder wird die dll vom Perlinterpreter selbst benötigt?

Jemand
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
GwenDragon
 2005-08-28 01:01
#57422 #57422
User since
2005-01-17
14533 Artikel
Admin1
[Homepage]
user image
Geht das nicht mit CPAN:PAR?\n\n

<!--EDIT|GwenDragon|1125176533-->
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

jemand
 2005-08-28 13:06
#57423 #57423
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
Quote
Da wäre ja Par, perl2exe uvm die den Interpreter mit in die Exe packen. Da ich mehrere Programme habe, wäre es aber wohl praktischer ein Perl-packet zu machen, das dann nur die nötigen Dateien beeinhaltet(perl.exe, was sonst noch?) und die Programme einfach als Bat(perl2bat is nichts schlecht find ich).


Oke ich gebs ja zu ich hab mich unverständlich ausgedrückt.
Also halt nochmal. Ich hab mehrere Programme, die Leute bekommen sollen, die kein Perl haben. Ich könnte also mit besagtem PAR den Interpreter zu jedem Programm hinzupacken, was ja auch gut funktioniert. Dann ist aber jedes Programm ~3MB groß, was ja nicht so toll ist.
Aus diesem Grund dachte ich mir nehm ich doch den Perl-Interpreter und liefer den dann als Packet, also nur die wichtigen Dateien. Die Programme sollen dann einfach einzeln als Bat-Dateien geliefert werden. Somit müsste man nur einmal die ~4MB(?) Interpreter und Standartmodule laden und dann die Programme als Bat, denn das sind ja dann nur jeweils n paar hundert KB. Ihr werdet mir sicher zustimmen dass 5*200kb+4000kb ökonomischer ist als 5*3000kb...
Was ich jetzt im Bezug darauf nicht weiß ist:
- Welche Dateien braucht Perl mindestens, um zu laufen,
- Für was genau ist die perlxx.dll.

Jemand

Edit: Oder bezog sich 'Geht das nicht mit PAR' auf das Verwenden der perlxx.dll?\n\n

<!--EDIT|jemand|1125220071-->
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
Strat
 2005-08-28 14:38
#57424 #57424
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
wenn man sich die zip-Version von activestate-perl (also nicht die .msi) saugt, ist da ein miniperl dabei, das fuer die installation benuetzt wird. das muesste man eigentlich auch um eigene Module erweitern koennen, und braucht dann fuer programmupdates nur die eigenen scripte (funktioniert dann allerdings wohl nicht als exe) und eventuelle neue module... aber gerade bei groesseren anwendungen ist es ziemlich muehseelig auszuprobieren, welche module man denn braucht... (gerade weil manche recht gerne dynamisch geladen werden)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
jemand
 2005-08-28 18:02
#57425 #57425
User since
2004-05-14
231 Artikel
BenutzerIn
[default_avatar]
Was mir noch so eingefallen ist: Kann man Pure-Perl Module nicht mit ins Programm einbinden? Gibtz da schon was, das das automatisch macht? Wenn nicht werd ich s mal von Hand versuchen. Zumindest ist es wenig sinnvoll das Hauptprogramm zu ner bat zu machen und dann noch die ganzen nur für dieses Programm geschriebenen Module rumliegen zu haben...
print uc 'i',chr(29*4).q+'s +.++($_=q-m-),++$_;
print chr for 116,$_[0],97,$_[0],98;
print 'ug,',chr(), scalar reverse qq?!erutaef a s'ti?;
J-jayz-Z
 2005-08-28 19:07
#57426 #57426
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
klar kann man pure Perl Module einfach einbinen. Das sind ja eigentlich nur subroutinen, aus welchem Packet du sie aufrufst ist egal, nur muss du eben mit OO Modulen aufpassen, da wird es die Funktion new() in jedem Modul geben, musst eben darauf achten, wie du sie aufrufst oder eben gegebenenfalls etwas umändern.
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
esskar
 2005-08-28 19:51
#57427 #57427
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=J-jayz-Z,28.08.2005, 17:07]klar kann man pure Perl Module einfach einbinen. Das sind ja eigentlich nur subroutinen, aus welchem Packet du sie aufrufst ist egal, nur muss du eben mit OO Modulen aufpassen, da wird es die Funktion new() in jedem Modul geben, musst eben darauf achten, wie du sie aufrufst oder eben gegebenenfalls etwas umändern.[/quote]
versteh ich nicht

test.pl
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
use strict;
use warnings;

package A;

sub new {
return bless {}, shift;
}

1;

package B;

sub new {
return bless {}, shift;
}

1;

pachage main;

my $a = new A;
my $b = new B;
J-jayz-Z
 2005-08-28 23:51
#57428 #57428
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
@esskar: Wenn man ca. 5 OO Module einbindet und jedes die Funktion new() hat, wird es etwas problematisch. Du kannst auch keine 5 subroutinen in einen script mit dem selben namen deklarieren...
Deshalb meinte ich, man muss drauf achten, wie man sie aufruft.
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
esskar
 2005-08-29 00:37
#57429 #57429
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[quote=J-jayz-Z,28.08.2005, 21:51]@esskar: Wenn man ca. 5 OO Module einbindet und jedes die Funktion new() hat, wird es etwas problematisch. Du kannst auch keine 5 subroutinen in einen script mit dem selben namen deklarieren...
Deshalb meinte ich, man muss drauf achten, wie man sie aufruft.[/quote]
hmm; doch das geht.
da jedes modul sein eigenes package hat, kann es auch zu keiner verwechselung kommen
Strat
 2005-08-29 13:28
#57430 #57430
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
bei sowas nur aufpassen, dass initialisierungen abgearbeitet werden... bei folgendem haette man z.B. ein Problem...
z.B.
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use warnings; use strict;
package main;
my $obj = MyPackage->new();
print "Value: ", $obj->value(), "\n";

package MyPackage;
my $var = 20;
sub new {
my ($class) = shift;
my $self = { value => $var };
return bless($self, $class);
} # new
sub value {
my ($self) = @_;
return $self->{value};
}
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
<< |< 1 2 3 >| >> 27 Einträge, 3 Seiten



View all threads created 2005-08-28 00:49.