User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=pq,15.12.2004, 18:18]wieso nicht?[/quote]
???
User since
2003-11-28
3645
Artikel
ModeratorIn
@esskar: Erklaer's mal uns Unix-Leuten. Ich dachte immer, die Shebang-Zeile wird von perl auf allen Betriebssystemen interpretiert.
User since
2003-08-14
2022
Artikel
BenutzerIn
win32 interessiert sich nicht für die #! Zeile. perl beachtet aber gesetzte Flags und der apache emuliert das unix-shell verhalten und sucht den perl-interpreter an angegebener stelle.
EDIT1: Leeres Quote entfernt.\n\n
<!--EDIT|Ronnie|1103206246-->
User since
2003-08-04
14371
Artikel
ModeratorIn
[quote=Ronnie,16.12.2004, 14:49][...]und der apache emuliert das unix-shell verhalten und sucht den perl-interpreter an angegebener stelle.[/quote]
kann man aber - soweit ich weiß - auch ausschalten/umgehen...
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=renee,16.12.2004, 14:58]auch ausschalten/umgehen...[/quote]
ja; was sogar sinnvoll ist
unter windows liegt perl meist in c:\perl\bin
dies wird es unter unix aber nie geben, wodurch man in windows einfach auch #!/usr/bin/perl stehen lässt und die registry entscheiden lässt, wo perl nun liegt.
Und das ist auch der Springendepunkt. Ist es nicht so, dass nicht perl die erste Zeile interpretiert, sondern die shell?
Die erfährt doch über die erste Zeile, wo das binary liegt. und die parameter hinter #!/usr/bin/perl sind einfach parameter von perl, die die shell mit übergibt.
Ich denke nur, dass perl unter windows selber die erste Zeile interpretiert und dann noch ein paar Schalter umlegt. Im Gegensatz zu unix, kann ich aber auch genauso gut den shebang unter windows komplett weg lassen, und die sache läuft immer noch. Umgekehrt muss das script unter unix auch nicht die endung .pl haben
Oder irre ich mich jetzt völlig?
User since
2003-08-04
12209
Artikel
Admin1
[quote=esskar,16.12.2004, 15:50]Ich denke nur, dass perl unter windows selber die erste Zeile interpretiert und dann noch ein paar Schalter umlegt.[/quote]
ganz genau. das ist aber ein unterschied zu "wird ignoriert".
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=pq,16.12.2004, 17:15]ganz genau. das ist aber ein unterschied zu "wird ignoriert".[/quote]
hab es ja oben auch schon zugegeben
User since
2003-08-04
5875
Artikel
ModeratorIn
Unter Unix wird die Shebang sowohl von der Shell als auch von Perl interpretiert.
(Und unter Windows nur von Perl, wie schon gesagt wurde.)\n\n
<!--EDIT|Crian|1103214859-->
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-11-28
3645
Artikel
ModeratorIn
Uebrigens werden auch bei perl unter Unix immer die Optionen interpretiert. Beweis:
$ cat /tmp/test.pl
#!/usr/bin/perl -w
$x = $y + 1; # sollte eine Warnung werfen
$ /tmp/test.pl
Name "main::y" used only once: possible typo at /tmp/test.pl line 2.
Name "main::x" used only once: possible typo at /tmp/test.pl line 2.
Use of uninitialized value in addition (+) at /tmp/test.pl line 2.
$ /usr/bin/perl /tmp/test.pl
Name "main::y" used only once: possible typo at /tmp/test.pl line 2.
Name "main::x" used only once: possible typo at /tmp/test.pl line 2.
Use of uninitialized value in addition (+) at /tmp/test.pl line 2.
Beim ersten Aufruf wird die Shebang-Zeile verwendet, beim
zweiten nicht, trotzdem gibt es noch immer Warnungen.
User since
2003-08-04
5246
Artikel
ModeratorIn
von woher kommt eigentlich die Warnung
... too late for -T ....
oder so aehnlich? (habe ich bisher nur unter Windows gesehen)