gpt4 book ai didi

Perl getcwd 结束正斜杠

转载 作者:行者123 更新时间:2023-12-01 06:10:30 24 4
gpt4 key购买 nike

我正在执行 Perl 脚本以将另一个变量附加到当前工作目录的末尾,但我在使用该模块时遇到问题。

  1. 如果我从 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 中的一个特性吗?文档里好像没有。

  2. 我想出了下面的代码来解决这个问题。它需要 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而不是制作自己的路径操作例程。

use Cwd;
use File::Spec;

$ProjectName = "Project";

$cwd = getcwd();
$directory = File::Spec->catdir($cwd, $ProjectName);

print "$directory\n";

关于Perl getcwd 结束正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/922221/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com