Perl falsch installiert?

Hi,

ich kann bei dem Perl meines Providers keine switches für Perl benutzen. Also

z.B. #!/usr/bin/perl -w

da bekomme ich NIE irgendwas gemeldet … Bei mir Zuhause allerdings schon…
oder wenn ich eine Fehlerabfrage mach… z.B. so:

open (FILE,"lala.txt") or die "kaputt!";

dann tritt ‚die‘ ein, wenn die Datei z.B. nicht existiert, aber die Ausgabe kommt nicht. Gut, ich könnte das natürlich umgehen, indem ich das anders schreibe und die Fehlerabfrege z.B. so mache

open (FILE,"lala.txt") or &fehler("kaputt!");
sub fehler {
print "Folgender Fehler trat auf: $\_[0]";
die;
}

Aber das ist doch nicht der Sinn… haben die Perl irgendwie falsch installiert, oder gibt es Perlversionen, die das noch nicht unterstützt haben (vor allem die Schalter bei dem Interpreteraufruf)… nen altes Perl?

Gruss,
Martin

Hast du nen telnet-Zugang? dann mach doch mal „perl -v“
und „which perl“

Hast du nen telnet-Zugang? dann mach doch mal „perl -v“
und „which perl“

nee, leider nicht…
aber ich habe das mal mit dem perl -v gemacht …

This is perl, version 5.005\_02 built for i586-linux

Copyright 1987-1998, Larry Wall

und bei dem which kommt

/usr/bin/perl

also der normale PERL Pfad
weisst Du jetzt mehr? :wink:

Hallo Martin,

ich kann bei dem Perl meines Providers keine switches für Perl
benutzen. Also

z.B. #!/usr/bin/perl -w

da bekomme ich NIE irgendwas gemeldet … Bei mir Zuhause
allerdings schon…
oder wenn ich eine Fehlerabfrage mach… z.B. so:

open (FILE,„lala.txt“) or die „kaputt!“;

dann tritt ‚die‘ ein, wenn die Datei z.B. nicht existiert,
aber die Ausgabe kommt nicht.

Das Problem koennte sein, dass Perl die Fehlerausgabe
in einem Zwischenpuffer ablegt. Versuch mal die Ausgabepufferung
abzuschalten (Infos unter „perldoc perlvar“):

#!/usr/bin/perl -w
$|=1;

Ein weiterer Trick, sich die Fehlermeldungen im Browser
anzeigen zu lassen, ist das CGI::Carp-Modul (Infos:
perldoc CGI::Carp) zu verwenden:

use CGI::Carp qw(fatalsToBrowser);

So ausgeruestet, sollte es funktionieren.

Gruss,
-Andreas.

Dann sollte alles in Ordnung sein…

Ach ja… was erwartest du eigentlich? dass dann „kaputt“ im Browser erscheint?
Dann musst du ja einen HTTP-header vorher ausgeben mit „Content-Type: text/html\n\n“ sonst kriegst du einen 500er Server Error.

MfG bruno

ich gebe den HTTP-header vorher schon aus, doch kommt sonst nix mehr. nur die und dann nix mehr …
und bei dem switch -w solle es doch Warnmeldungen geben, wenn ich irgendwas falsch gemacht habe, was nicht unbedings nötig ist oder?
kommt aber nix… kam noch nie was … ich kann ein Script noch so schlecht schreiben, der -w Schalter tut nix …

gruss,
Martin

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

ich gebe den HTTP-header vorher schon aus, doch kommt sonst
nix mehr. nur die und dann nix mehr …
und bei dem switch -w solle es doch Warnmeldungen geben, wenn
ich irgendwas falsch gemacht habe, was nicht unbedings nötig
ist oder?
kommt aber nix… kam noch nie was … ich kann ein Script noch
so schlecht schreiben, der -w Schalter tut nix …

Sorry kann da auch ned helfen, habe das noch nie versucht im Browser auszugeben, sondern immer dann mal über die Shell ausgeführt, aber das kannst du ja leider nicht…

Hi Martin,

nur mal so nachgefragt:
funzt das Script überhaupt beim Provider?
Und welche Version hast Du zu Hause?
Mit welchem Tool schreibst Du das Script?

Hintergrund:
Wenn Du das Script mit WinDOOFs schreibst, wird an jede Zeile ein CR+LF angehängt. LINUX will aber nur ein LF!
Wenn Du dies nicht konvertierst, bricht PERL (zumindest in den mir bekannten LINUX-Versionen) den Interpreterlauf ohne Kommentar ab! (da ungültiges Zeichen gefunden)
Bei FTP-Übertragung also immer die automatische Konvertierung einschalten, oder schon im „LINUX-Format“ schrieben.

CU (M)ike.

Prima :smiley:

Jetzt bekomm ich endlich mal das Angezeigt, was ich schon die ganze Zeit vermisste :wink:
danke!

gruss,
Martin

jojo, funzt alles soweit :wink:
Ich weiss schon, dass ich das im ASCII-Modus übertragen muss und so weiter :smile:
Scripte gehen ja auch, war nur eben die Fehlermeldung, die nicht ging …
aber jetzt hab ich es ja (siehe Message weiter unten)

gruss,
Martin