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

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



Hallo Heiko!

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.

Für genaue Erklärungen siehe:
    man bash (Parameter Expansion)
    man perlrun

Tschüss,
  Michael

--
-----------------------------------------------------------
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: