Use strict; macht probleme

Hallo Leute,

ich versuche ein ganz billiges script zu starten (environment)

#! /usr/bin/perl

Dieses Script stelle die Enviroment-Parameter dar.

print „Content-type: text/html\n\n“;

print „Enviroment-Übersicht\n“;
print " Enviroment-Übersicht \n";
print "
\n";
foreach $key (keys %ENV) {
print " $key : $ENV{$key}
\n";
}
print „\n“;
print „“;

…das haut auch hin, nur sobald ich das „use strict;“ einfüge, bekomme ich Internal Server Error 500.

#! /usr/bin/perl

Dieses Script stelle die Enviroment-Parameter dar.

use strict;

print „Content-type: text/html\n\n“;

print „Enviroment-Übersicht\n“;
print " Enviroment-Übersicht \n";
print "
\n";
foreach $key (keys %ENV) {
print " $key : $ENV{$key}
\n";
}
print „\n“;
print „“;

…woran liegt das???

vielen Dank und viele Grüße

james

richtig
hallo james,
die strictness meint, dass nur variablen akzeptiert werden, die vorher auch deklariert worden sind- das zauberwort ist „my“.

…das haut auch hin, nur sobald ich das „use strict;“

deswegen reicht das alleine nicht.
entweder am anfang mit „my ($key)“ oder
print " my $key : $ENV{$key}
\n";

greetings
bernd

… nicht so richtig
Hallo zusammen!

die strictness meint, dass nur variablen akzeptiert werden,
die vorher auch deklariert worden sind- das zauberwort ist
„my“.

Korrekt, dass soll Dich vor Tippfehlern bewahren, siehe auch
die Perldokumentation „perldoc strict“.

a)

entweder am anfang mit „my ($key)“ oder

Korrekt.

b)

print " my $key : $ENV{$key}
\n";

Das funktioniert dagegen nicht. Das my in Anführungszeichen
hat für Perl keine spezielle Bedeutung und wird als
normaler String mit ausgegeben. Die Deklaration kann
also nur im voraus wie unter a) geschehen.

Gruß,
-Andreas.

vielen Dank, aber haut trotzdem nicht hin. hab ich pech , lass ich halt weg !

gruß

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

Hallo Bond!

Probier’s hiermit:

#! /usr/bin/perl

# oh allwissendes Perl, informiere uns über 
# falschgeschriebene bzw. unbekannte Variablennamen:
use strict; 

# diese Variablen wollen wir verwenden:
my ($key);

# dein Code:
print "Content-type: text/html\n\n";
print "Enviroment-Übersicht\n";
print " Enviroment-Übersicht \n";
print "
\n";
foreach $key (keys %ENV) {
print "$key: $ENV{$key}
\n";
}
print "\n";
print "";

Gruß,
-Andreas.