was passiert, wenn neuer Dateiname bei rename vorhanden
Freddy
- perl
Hi,
was passiert beim ausführen des rename-Befehls, wenn ich die DATAI_A in DATEI_B umbenenne und die DATEI_B existiert bereits auf dem Ordner bzw Verzeichnis? Betriebssysteme wie DOS und Windows "meckern", wenn BATEI_B bereits vorhanden ist. Wie ist es bei Pern unter einem UNIX oder LINUX-Server?
Hab mich noch nie mit Perl beschäftigt aber was hält dich davon ab es einfach auszuprobieren?
Hi,
was passiert beim ausführen des rename-Befehls, wenn ich die
Frage die Variable $! ab nach Ausführen von rename.
Ansonsten gibt es auch das Modul
File::Copy
was plattformunabhängig sein dürfte. Siehe ebenda.
--roro
was passiert beim ausführen des rename-Befehls, wenn ich die
Frage die Variable $! ab nach Ausführen vonrename.
Das nützt nichts, siehe perldoc -f rename.
Siechfred
was passiert beim ausführen des rename-Befehls, wenn ich die DATAI_A in DATEI_B umbenenne und die DATEI_B existiert bereits auf dem Ordner bzw Verzeichnis?
Das ist zwar systemabhängig, aber grundsätzlich überschreibt rename eine existierende Zieldatei klaglos. Treten andere Fehler auf, liefert die Funktion "wahr", anderenfalls "falsch". Diesen Rückgabewert kannst du abfragen und ggf. unter Verwendung von $! eine Fehlermeldung erzeugen. Der richtige Weg wäre allerdings, zuvor mit Hilfe der filetest-Operatoren abzufragen, ob die Zieldatei bereits existiert:
if( -e $newname ) {
print "Fehler: $newname gibt es schon.";
}
else {
rename $oldname, $newname or die "Umbenennen schiefgegangen: $!";
}
Oder in Kurzschreibweise:
-e $newname ? print "$newname existiert." : rename $oldname, $newname or die "Umbenennen schiefgegangen: $!";
Siechfred
Treten andere Fehler auf, liefert die Funktion "wahr", anderenfalls "falsch".
Anders herum: Treten andere Fehler auf, dann "falsch", ansonsten "wahr".
Siechfred