Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Witam
Czytałem trochę o kopmpilacji perla - i w związku z tym pytanie:
W trech systemach - w których sprawdzałem - Debian Lenny, Ubuntu Lucid i Gentoo - w żadnym nie znalazłem polecenia perlcc, natomiast próba szukania go jako programu daje taki wynik:
Debian i Ubuntu
apt-cache search perlcc libperl-dev - Perl library: development files
- po instalacji tej biblioteki sytuacja bez zmian:
:~$ perlcc perlcc: command not found
W Gentoo w ogóle nie znajduje takiego programu:
# eix perlcc No matches found.
Czy ten kompilator został wbudowany w perla, lub występuje teraz pod inną nazwą?
Jak w tej chwili można skompilować program perlowy na Linuxie (najlepiej statycznie - żeby zaimportował do pliku wykonywalnego wszystkie potrzebne funkcje z modułów perla) - żeby można go było użyć na każdym kompie z pingwinem, bez kombinowania z modułami perla?
Dzięki i pozdrawiam
:)))
Offline
Gentoo:
milyges@aristo ~ $ perlcc /usr/bin/perlcc: Usage: /usr/bin/perlcc [-o executable] [-r] [-O|-B|-c|-S] [-I /foo] [-L /foo] [-log log] [source[.pl] | -e oneliner] milyges@aristo ~ $
Nic dziwnego nie instalowałem, to powinno być w perlu:
milyges@aristo ~ $ qfile perlcc dev-lang/perl (/usr/bin/perlcc) milyges@aristo ~ $
Offline
W debianie i ubuntu ani śladu, za to w Gentoo - po przebudowaniu perla - voila - znalazł się, (nie wiem - co spieprzyłem wcześniej ;)))).
Pytanie dodatkowe: jeśli kompiluję skrypt - który korzysta z kilku modułów - czy da się tak skompilować - żeby te moduły (potrzebne funkcje) znalazły się w kodzie, - żeby działało również na systemie - w którym takie moduły nie są zainstalowane? - czy da się to ustawić, bądź jest do domyślne działanie?
I jeszcze jedno: czy jest jakaś opcja kompilacji "jednokierunkowej" gdybym np. w skrypcie miał wpisane na stałe jakieś hasła, czy inne poufne dane, - aby choć troszkę to zabezpieczyć wyciągnięciem przez przed dekompilacją, - podobnie jak to robi ioncube php-encoder - dla php?
Dzięki i Pozdrawiam
:)))
Ostatnio edytowany przez Jacekalex (2010-05-15 21:22:40)
Offline
Jacekalex napisał(-a):
Jak w tej chwili można skompilować program perlowy na Linuxie (najlepiej statycznie - żeby zaimportował do pliku wykonywalnego wszystkie potrzebne funkcje z modułów perla) - żeby można go było użyć na każdym kompie z pingwinem, bez kombinowania z modułami perla?
Offline
milyges napisał(-a):
Nic dziwnego nie instalowałem, to powinno być w perlu:
U mnie tyż nie ma ;]
amidala / # perlcc bash: perlcc: nie znaleziono polecenia
ale...
amidala / # locate perlcc /usr/portage/dev-lang/perl/files/perl-5.8.8-perlcc.patch
amidala / # emerge -vp perl These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/perl-5.10.1 USE="berkdb gdbm -build -debug -doc -ithreads" 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB
Śmiem twierdzić, że to coś (cokolwiek to jest) wyszło z mody i w nowych wersjach perla po prostu tego nie ma.
W Debku też kiedyś było: http://packages.debian.org/search?searchon=contents … &arch=any
Offline
Dzięki.
Zainstalowałem ten parl- w manualu jest chyba z 50 przykładów - co jeden - to lepszy.
Należy jednak pamiętać - że próbując zbudować paczkę ze skryptu (działającego) osiągnąłem tyle - że przy zamknięciu terminala było okienko - czy zamknąć proces. (najlepszy rezultat kilkunastu kombinacji ze składnią polecenia).
Skoro takie pytanie - znaczy się - proces jakiś tam działał, ale rezultatu brak.
W związku z powyższym - proste (chyba) pytanie:
Jak tym parl'em spakować taki oto (działający) skrypt (coby ruszył na każdym Linuxie - miał statycznie zaimportowane moduły perla)
#!/usr/bin/perl use strict; use Net::Gadu; use Unicode::MapUTF8 qw(to_utf8 from_utf8); my $gg_mess=""; my $gg_login="<numer-gg>"; my $gg_pass="<password-gg>"; my $gg_chat_number = $ARGV[0]; while (<STDIN>) { $gg_mess = $_; } $gg_mess = from_utf8( { -string => $gg_mess, -charset => 'ISO-8859-2' } ); my $gg = new Net::Gadu(async => 1); $gg->login($gg_login, $gg_pass, $Net::Gadu::STATUS_INVISIBLE) or die "Login error\n"; while ($gg->check_event() == 1){ my $e = $gg->get_event(); my $type = $e->{type}; if ($type == $Net::Gadu::EVENT_CONN_SUCCESS){ # print "CONNECTED\n"; $gg->notify(); $gg->send_message_chat($gg_chat_number, $gg_mess); } } $gg->logoff();
Poprawka, miałem też taki wynik:
:~/Pulpit/notatki/osstt/perl$ parl -O./ggnx ggskrypt.pl format error: can't find EOCD signature at /usr/share/perl5/Archive/Zip/Archive.pm line 695 Archive::Zip::Archive::_findEndOfCentralDirectory('Archive::Zip::Archive=HASH(0xa22d8c0)', 'IO::File=GLOB(0x9fea0d8)') called at /usr/share/perl5/Archive/Zip/Archive.pm line 581 Archive::Zip::Archive::readFromFileHandle('Archive::Zip::Archive=HASH(0xa22d8c0)', 'IO::File=GLOB(0x9fea0d8)', 'ggskrypt.pl') called at -e line 472 eval {...} called at -e line 209 __par_pl::BEGIN() called at -e line 966 eval {...} called at -e line 966 Read 'ggskrypt.pl' error: Bad file descriptor at -e line 472.
Da się jakoś to cudo (parl) użyć?
Dzięki i Pozdrawiam
:)
Ostatnio edytowany przez Jacekalex (2010-06-20 09:33:53)
Offline