Ich mache ein Perl-Skript, um eine andere Variable an das Ende des aktuellen Arbeitsverzeichnisses anzuhängen, aber ich habe Probleme mit der Verwendung des Moduls.Perl getcwd Ende vorwärts Schrägstriche
Wenn ich von
D:\
getcwd laufen, kehrte der WertD:/ (with forward slash)
ist Wenn ich getcwd von
D:\Temp\
laufen, kehrte der WertD:/temp (without forward slash)
Dies ist die Situation ziemlich schwierig macht, weil wenn ich es einfach mache:
use Cwd; $ProjectName = "Project"; # This is a variable supplied by the user $directory = getcwd().$ProjectName."\/"; print $directory."\n";
Ich werde oben mit beiden
D:/Project (correct)
oder
D:/TempProject (instead of D:/Temp/Project)
Ist dies ein Merkmal in
Cwd
enden? Es scheint nicht in der Dokumentation zu sein.Ich habe den folgenden Code entwickelt, um dieses Problem zu lösen. Es dauert 3 Zeilen, um es zu tun. Kann jemand von euch einen prägnanteren Weg sehen?
use Cwd; $ProjectName = "Project"; # This is a variable supplied by the user $directory = getcwd(); $directory =~ s/(.+?)([^\\\/])$/$1$2\//g; # Append "/" if not terminating with forward/back slash $directory .= $ProjectName."\/"; print $directory."\n";
Vielen Dank für die Bekanntmachung von File :: Spec. Ich muss mein gesamtes Skript ändern, um catdir und catfile zu verwenden. Ich bin mir sicher, dass es auf lange Sicht besser ist. – Andy