Freddy: was passiert, wenn neuer Dateiname bei rename vorhanden

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?

  1. Hab mich noch nie mit Perl beschäftigt aber was hält dich davon ab es einfach auszuprobieren?

    --
    Lg,
    Snafu
  2. 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

    1. was passiert beim ausführen des rename-Befehls, wenn ich die
      Frage die Variable $! ab nach Ausführen von rename.

      Das nützt nichts, siehe perldoc -f rename.

      Siechfred

      --
      Ich bin strenggenommen auch nur interessierter Laie. (molily)
  3. 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

    --
    Ich bin strenggenommen auch nur interessierter Laie. (molily)
    1. Treten andere Fehler auf, liefert die Funktion "wahr", anderenfalls "falsch".

      Anders herum: Treten andere Fehler auf, dann "falsch", ansonsten "wahr".

      Siechfred

      --
      Ich bin strenggenommen auch nur interessierter Laie. (molily)