加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

perl – Unix如何使用两个连续斜杠读取路径名? (例如/ home / u

发布时间:2020-12-15 21:46:57 所属栏目:大数据 来源:网络整理
导读:这就是我提出这个问题的原因:我写了很多bash和Perl脚本,我发现自己必须经常连接两个路径.像这样的东西是典型的: my $prefix = "/home/user/";my $suffix = "/mystuff";...chdir $prefix.$suffix; 问题是我并不总是记得我是否在前缀的末尾添加了斜杠,或者我
这就是我提出这个问题的原因:我写了很多bash和Perl脚本,我发现自己必须经常连接两个路径.像这样的东西是典型的:
my $prefix = "/home/user/";
my $suffix = "/mystuff";
...
chdir $prefix.$suffix;

问题是我并不总是记得我是否在前缀的末尾添加了斜杠,或者我是否在后缀的开头添加了斜杠.所以我可能会意外地将两个斜杠连接在一起,就像上面的例子一样.

所以我的主要问题是两个连续斜线是否会导致任何问题以及原因.但是,程序员也有这样的约定吗?在其他人编写的代码中,目录名是否总是以斜杠结尾?如果有一些我可以遵循的一致规则会很好.

解决方法

这很好. Unix系统将重复的斜杠视为一个斜杠,因此请务必添加一个斜杠.
my $prefix = "/home/user";  # Or "/home/user/"
my $suffix = "mystuff";
my $dir = "$prefix/$suffix";

但是,如果您因任何原因想要一个标准化的路径(例如,它将显示给用户),您可以使用:

use Path::Class qw( dir );
my $prefix = dir("/home/user");  # Or "/home/user/"
my $dir = $prefix->subdir($suffix);
say $dir;

无论您从/ home / user,/ home / user /甚至/// home /// user ///开始,您最终都会:

/home/user/mystuff

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读