Je crée un script Perl pour attacher une autre variable à la fin du répertoire de travail en cours, mais j'ai des problèmes avec l'utilisation du module.Perl getcwd fin des barres obliques
Si je cours getcwd de
D:\
, la valeur retournée estD:/ (with forward slash)
Si je lance getcwd de
D:\Temp\
, la valeur retournée estD:/temp (without forward slash)
Cela rend la situation très délicate, car si je fais simplement:
use Cwd; $ProjectName = "Project"; # This is a variable supplied by the user $directory = getcwd().$ProjectName."\/"; print $directory."\n";
Je finissons avec
D:/Project (correct)
ou
D:/TempProject (instead of D:/Temp/Project)
Est-ce une fonctionnalité dans
Cwd
? Cela ne semble pas être dans la documentation. J'ai conçu le code suivant pour résoudre ce problème. Il faut 3 lignes pour le faire. Quelqu'un d'entre vous peut-il voir un moyen plus concis?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";
Merci d'avoir fait connaître File :: Spec. Je dois changer tout mon script pour utiliser catdir et catfile. Je suis sûr que c'est mieux à long terme. – Andy