Hi Stefan,
heute mal eine Fachfrage von mir:
muß ja auch mal sein :-)
ich suche in Perl eine Funktion zum Kopieren von Dateien. Dabei will ich system-calls vermeiden, weil das Ganze BS-unabhaengig sein soll.
Nun gibt es da noch die Scheinkopier-Funktion link($oldfile,$newfile), doch die wird offensichtlich auch nur von Unix-Plattformen unterstuetzt, wo es "link" ja auch als Betriebssystem-Kommando gibt. Unter Windows jedenfalls brachte mir die link-Funktion in Perl einen CGI-Error.Gibt es noch eine andere Funktion? Oder muß man alle betroffenen Dateien (in diesem Fall: diverse Grafiken) binaer einlesen und unter neuem Namen wieder zurueckschreiben?
Es gibt eine einfache Lösung: das Modul File::Copy! Folgende Syntax:
use File::Copy;
copy("file1", "file2");
File::Copy ist standardmäßig vorhanden bzw. kann mit Sicherheit bei http://www.perl.com/CPAN/ runtergeladen werden und hat den Vorteil, sich um die ganzen Betriebssystem-Sachen zu kümmern. Funktioniert sogar mit OS/2 :-)
Erweiterte Syntax:
copy("file1", "file2") or die "Fehler: $!";
Dadurch wird die Fehlermeldung des Systems abgefangen und ausgegeben (ins Errorlog).
Cheatah