🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.perl
3 messages
3 total messages Started by Maciej Misiak Fri, 25 Sep 2009 08:38
łamigłówka
#51623
Author: Maciej Misiak
Date: Fri, 25 Sep 2009 08:38
16 lines
1374 bytes
Ściągnąłem opalORBa. Zainstalowałem. Działa. Zaczynam tworzyć własne
rozwiązanie, a tu w przykładowych skryptach na samym początku w każdym prawie
pliku taki oto dziwoląg:

eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}'
    & eval 'exec perl -w -S $0 $argv:q'
    if 0;

Zaczynam analizować po co to zamiast shebanga, jak ktoś ma jakieś wskazówki to
będę wdzięczny.

-- 
grizzley

-- 
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: łamigłówka
#51624
Author: Maciej Misiak
Date: Fri, 25 Sep 2009 08:50
8 lines
1178 bytes
perlrun i switch -S zawierają opis tego czegoś.

-- 
grizzley
Hmm, mam wrażenie jakbym mówił do siebie... :)

-- 
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
Re: ?amig?ówka
#51626
Author: Stachu 'Dozzie' K.
Date: Fri, 25 Sep 2009 11:29
24 lines
1865 bytes
On 25.09.2009, Maciej Misiak wrote:
> Ściągnąłem opalORBa. Zainstalowałem. Działa. Zaczynam tworzyć własne
> rozwiązanie, a tu w przykładowych skryptach na samym początku w każdym prawie
> pliku taki oto dziwoląg:
>
> eval '(exit $?0)' && eval 'exec perl -w -S $0 ${1+"$@"}'
>     & eval 'exec perl -w -S $0 $argv:q'
>     if 0;
>
> Zaczynam analizować po co to zamiast shebanga, jak ktoś ma jakieś wskazówki to
> będę wdzięczny.

Kiedyś zdaje się był taki zwyczaj, że shell w jakichś tam warunkach
(chyba chodziło o niepowodzenie exec()) próbował interpretować plik jak
swój skrypt. Pierwsza linijka to "exec perl" dla /bin/sh
i kompatybilnych (chociaż nie do końca rozumiem po co ${1+"$@"}, skoro
dokładnie to samo się osiąga przez "$@"), druga wygląda na to samo dla
csh/tcsh, a trzecia to ominięcie dwóch pierwszych już w samym Perlu.

Ot, taki hack, kod poprawny dla trzech różnych języków naraz skutkujący
uruchomieniem ostatniego z nich.

-- 
Stanislaw Klekot
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads