TED116: find-Aufruf klappt nicht

Hallöle,

ich bin gerade dabei ein CGI-Programm in Perl zu schreiben, welches im ersten Schritt alle Dateien
namens index.txt aus einem bestimmten Verzeichnis in eine Datei schreibt. Dieses Programm soll
später dazu dienen den FTP-Server automatisch auszulesen.

Mein Aufruf sieht folgendermaßen aus (LINUX-Server):

$startdir = "/home/ftp/pub/";
$dateiname = "index.txt";
$listdatei = "/tmp/index.list";

commandline = "find "$startdir"";
commandline .="-name "$dateiname"";
commandline .="-fprint "$listname"";

oder

commandline = "find /home/ftp/pub/ -name index.txt -fprint /tmp/index.list";

system ($commandline);

Gebe ich "find /home/ftp/pub/ -name index.txt -fprint /tmp/index.list" direkt über telnet ein funktionierts.
Teste ich aber das Skript mit perl -c bricht er mir mit folgendem Fehler ab:
<Can't modify constant item in scalar assignment at ftp.pl line 8, near ""find "$startdir"";"
<ftp.pl had compilation errors.

Kommentiere ich die commandline-Zeilen aus, ist die Syntax ok.

Wo liegt mein Fehler? Hab ich was übersehen?

Danke und grüsse
TED116

  1. Hi,

    commandline = "find "$startdir"";

    Du bist zu arm, kannst Dir nicht mal ein paar $ leisten ;-)

    Vor allem möchtest Du aber eigentlich File::Find benutzen, anstatt auf Systemkommandos zurückzugreifen. Besser isses, schon allein wegen der Sicherheit.

    Cheatah

    1. Hy,

      Du bist zu arm, kannst Dir nicht mal ein paar $ leisten ;-)

      Uups! Da sieht man doch den Wald vor lauter Bäumen nicht!

      Vor allem möchtest Du aber eigentlich File::Find benutzen, anstatt auf Systemkommandos zurückzugreifen. Besser isses, schon allein wegen der Sicherheit.

      War eigentlich nicht angedacht. Werde mich aber sofort damit beschäftigen ;-)

      Danke
      TED116