Hallo,
Daraus ist das geworden:
#!/usr/bin/perl
use strict;
Du wießt, warum das hier steht?
open(OUTFILE, ">test.html") or
die " Datei test.html konnte nicht geoeffnet werden:
$!\n";
$ordnername = "/home/jan/ATF-HP";
opendir(DIR, $ordnername);
@eintraege = readdir(DIR);
foreach(@eintraege) {
print OUTFILE $_;
}
Dir ist hoffentlich klar, daß da die Dateinamen (und nur die, also ohne dem Pfad) quasi in einer Wurst in der Datei landen. Aber Du willst wahrscheinlich irgendwann sowieso eine HTML-Formatierung einfügen, also nicht mehr weiter lamentiert
closedir(DIR);
close OUTFILE;#!/usr/bin/perl
Nun erhalte ich immer folgende Fehlermeldung:
Global symbol "$ordnername" requires explicit package name at ordner.pl line 8.
Global symbol "$ordnername" requires explicit package name at ordner.pl line 9.
Global symbol "@eintraege" requires explicit package name at ordner.pl line 10.
Global symbol "@eintraege" requires explicit package name at ordner.pl line 13.
Das hängt mit 'use strict;' zusammen. Du solltest, wenn Du diese Anweisung verwendest, auch gefälligst jede Variable deklarieren, also
my($ordnername) = '/home/wo/auch/immer';
my(@eintraege) = readdir(DIR);
usw. Das zauber wort heißt my. Jede Variable, die Du neu einführst, sollte mit 'my' deklariert werden [1]. Aber lass bitte nicht 'use strict' weg, obwohl das auch die Fehlermeldungen beseitigen würde. Gewöhn Dir lieber das ordentliche Deklarieren an. Mit ein wichtiger Grund ist, daß es auf Dauer leichter ist, Schreibfehler bei Variablennamen zu finden.
'Literaturhinweise':
perldoc -f my
perldoc -f our
perldoc perlmodlib
Grüße
Klaus
[1] der Vollständigkeit halber sollte auch noch erwähnt werden daß es da auch noch 'our' gibt und auch 'use vars qw(.....)'