現在の作業ディレクトリの最後に別の変数を付けるPerlスクリプトを実行していますが、モジュールの使用に問題があります。Perl getcwd接尾辞スラッシュ
私は
D:\
からGETCWD実行した場合、返される値はD:/ (with forward slash)
である私は
D:\Temp\
からGETCWD実行した場合、返される値はこれが原因で状況はかなりトリッキーになりD:/temp (without forward slash)
です私が単純にすれば:
use Cwd; $ProjectName = "Project"; # This is a variable supplied by the user $directory = getcwd().$ProjectName."\/"; print $directory."\n";
私は
D:/Project (correct)
または
D:/TempProject (instead of D:/Temp/Project)
のいずれかで終わるだろう、これは
Cwd
の機能ですか!それはドキュメンテーションにはないようです。私はこの問題を解決するために次のコードを考えました。それには3行かかります。あなたの誰かがより簡潔な方法を見ることができますか?
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";
File :: Specを知っていただきありがとうございます。 catdirとcatfileを使うようにスクリプト全体を変更しなければならない。私はそれが長期的には良いと確信しています。 – Andy