在 Java 的情况下,我们可以使用获取路径分隔符
System.getProperty("path.separator");
Perl中有类似的方法吗?我要做的就是找到一个目录,即直接子目录。假设我得到了两个论点$a
和$b
;我根据路径分隔符拆分第一个并再次加入它,除了最后一个片段并与第二个参数进行比较。
问题是我的代码必须是通用的,为此我需要知道系统相关的路径分隔符是什么?
您不应该手动形成文件路径 - 而是使用File::Spec模块:
($volume, $directories,$file) = File::Spec->splitpath( $path );
@dirs = File::Spec->splitdir( $directories );
$path = File::Spec->catdir( @directories );
$path = File::Spec->catfile( @directories, $filename );
接受的答案解决了您真正的问题,但如果您真的想获得分隔符(仅使用 perl 核心模块):
my $sep = File::Spec->catfile('', '');
这将两个空文件名与当前系统的分隔符连接起来,只留下分隔符。