Wenn Sie einen Pfad zu einer Datei (z. B. /home/bob/test/foo.txt) haben, in der jedes Unterverzeichnis im Pfad vorhanden sein kann oder nicht, wie kann ich die Datei foo.txt auf eine Art erstellen das verwendet "/home/bob/test/foo.txt" als einzige Eingabe, anstatt jedes nicht existierende Verzeichnis im Pfad einzeln zu erstellen und schließlich foo.txt selbst zu erstellen?
Sie können File :: Basename und Datei :: Pfad
%Vor%Ich habe keine Tests hinzugefügt, um zu sehen, ob die Datei bereits existiert, aber das ist ziemlich einfach mit Perl hinzuzufügen.
Ich glaube nicht, dass es eine Standardfunktion gibt, die alles, was Sie fragen, direkt aus dem Dateinamen erledigen kann.
Aber mkpath (), aus dem Modul File :: Path, kann es fast tun, wenn man das Verzeichnis des Dateinamens benutzt. Aus der Datei :: Pfaddokumente:
Die "mkpath" -Funktion bietet a bequeme Möglichkeit, Verzeichnisse zu erstellen, Selbst wenn Ihr "mkdir" -Kernel nicht funktioniert Erstellen Sie mehr als eine Ebene von Verzeichnis zu einem Zeitpunkt.
Beachten Sie, dass mkpath () Fehler nicht auf eine nette Art meldet: Es stirbt, anstatt nur aus irgendeinem Grund Null zurückzugeben.
Wenn Sie das alles tun, können Sie etwas tun wie:
%Vor%