[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: eval 'exec perl -S $0 ${1+"$@"}' if $running_under_some_shell;



* Michael Droste schrieb am 11.Jan.2001:
> On Wed, Jan 10, 2001 at 01:00:04PM +0100, Heiko Romahn wrote:

> > Ich habe folgendes in einem Perlskript gefunden:

> > eval 'exec perl -S $0 ${1+"$@"}' if $running_under_some_shell;
> >                       ^^^^^^^^^
> > Soweit ist das auch klar und kein Problem. Nur das markierte bringt mich um 
> > den Verstand. Warum addiert man 1 auf die Variable die den letzten 
> > eval-Errstring enthaelt und leasst sich darauf eine Referenz geben?

> Wird diese Zeile vom Perl-Interpreter verarbeitet, so sieht
> dieser nur die *undefinierte* Variable $running_under_some_shell
> und unterläßt daher die Auswertung des `eval'.

> Wird diese Zeile aber von der Bash ausgewertet, so haben $@,
> etc. natürlich andere Bedeutungen, und genau darum geht es hier.

So ist es. Es ist auch keine Additon, sondern es wird "$@" anstelle
dieses Ausdruckes gesetzt, falls $1 existiert, sonst ist der
Ausdruck leer.

Bernd

--
-----------------------------------------------------------
Um sich aus der Liste auszutragen schicken Sie bitte eine
E-Mail an debian-user-de-request@lehmanns.de die im Subject
"unsubscribe <deine_email_adresse>" enthaelt.
Bei Problemen bitte eine Mail an: Jan.Otto@Lehmanns.de
-----------------------------------------------------------

684 eingetragene Mitglieder in dieser Liste.


Reply to: