Kann mir jemand erklären, was das Folgende zu tun versucht? Was ist der Zweck hinter diesem Code-Chunk?Verstehen eines Code Brocken von Perl
#!/bin/perl
eval 'exec perl5 -S $0 ${1+"[email protected]"}'
if 0;
Vielen Dank!
EDIT1: Ich versuche, den Codeblock oben in ändern: denken
#!/bin/sh
eval 'exec perl5 -S $0 ${1+"[email protected]"}'
if 0;
und ich es sollte funktionieren, da das Skript wie Shell-Skript behandelt wird und eval
erhalten ausgeführt und perl5
wird aufgerufen, um Verwenden Sie Perl, um das gleiche Skript auszuführen. Allerdings, wenn ich dies tatsächlich laufen, ich habe:
/bin/sh: -S: invalid option
Kann mir jemand erklären, warum dieser Fall das Skript fehlgeschlagen ist. Versteh ich etwas falsch? Ich benutze ksh
Vielen Dank!
EDIT2: EDIT1 scheint wie eine völlig andere Frage, und ich poste es here
Einfach nach diesem Satz zu suchen, gibt viele Treffer, darunter [Was ist die genaue Bedeutung von find2perl perl shebang + eval?] (Http://stackoverflow.com/questions/ 6123971/Was-ist-die-genaue-Bedeutung-des-find2perl-perl-shebang-eval). Und das sollte deine Frage beantworten. –
@SteffenUllrich Danke für den Link! – zack
Ist dieser Code von 'find2perl' gekommen? – Borodin