esl: Lesen von Benutzereingaben / Öffnen von Verzeichnissen

Hallo Forum

Ich hoffe Ihr könnt mir helfen.

Ich versuche per Perl-Skript eine HTML-Datei zu schreiben und zu speichern. Den statischen Teil krieg ich hin, den Inhalt, welcher durch einen Verzeichnisinhalt definiert wird, wird nicht eingefügt, dies aber erst, seit ich das directory vom User abfrage, und nichtmehr im code drin habe. könnt ihr mir auf die sprünge helfen? Anbei die entspr. Codezeilen

use strict;
#variables for iteration on directory content
my @files;
my $file;
#variables for user input
my $filename;
my $directory;

print("Geben Sie den Pfad zu den Bilddateien an (BSP: C:/daten/bilder)\n");
$directory = <STDIN>;
print("Geben Sie den Namen der zu erstellenden HTML-Datei an (BSP: gallery.html)");
$filename = <STDIN>;

.....

opendir(DIR, $directory);
 @files = readdir(DIR);

close(DIR);

foreach $file (@files) {
   if ($file =~ /.jpg\b/ || $file =~ /.gif\b/ || $file =~ /.png\b/ || $file =~ /.JPG\b/ || $file =~ /.GIF\b/ || $file =~ /.PNG\b/) {

...

Besten Dank und Grüsse
esl

  1. Hallo,

    print("Geben Sie den Pfad zu den Bilddateien an (BSP: C:/daten/bilder)\n");
    $directory = <STDIN>;

    opendir(DIR, $directory);

    Bedenke, daß beim Einlesen einer 'Zeile' von einem Filehandle (z.B. STDIN) auch der eingestellte INPUT_RECORD_SEPERATOR mit eingelesen wird (defaultmäßig \n).
    Wenn dieses Zeichen (bzw. Die entsprechende Zeichenfolge) unerwünscht ist, dann kann sie beispielsweise mit chomp aus dem String entfernt werden.

    Alles klar?

    Grüße
      Klaus

  2. Hi esl,

    $directory = <STDIN>;
    $filename = <STDIN>;

    laß Dir mal den Inhalt dieser beiden Variablen ausgeben ...

    Viele Grüße
          Michael

    --
    T'Pol: I apologize if I acted inappropriately.
    V'Lar: Not at all. In fact, your bluntness made me reconsider some of my positions. Much as it has now.
    (sh:| fo:} ch:] rl:( br:^ n4:( ie:% mo:) va:| de:/ zu:| fl:( ss:) ls:~ js:|)
     => http://www.peter.in-berlin.de/projekte/selfcode/?code=sh%3A|+fo%3A}+ch%3A]+rl%3A(+br%3A^+n4%3A(+ie%3A%25+mo%3A)+va%3A|+de%3A%2F+zu%3A|+fl%3A(+ss%3A)+ls%3A~+js%3A|
    Auch diese Signatur wird an korrekt konfigurierte Browser gzip-komprimiert übertragen.