如何在Perl中获取目录(文件路径)分隔符?

时间:2010-05-24 13:30:47

标签: perl path generics separator

对于Java,我们可以使用

获取路径分隔符
System.getProperty("path.separator");

Perl有类似的方法吗?我想做的就是找到一个目录,直接子目录。 假设我有两个参数$a$b;我正在基于路径分隔符拆分第一个并再次连接它,除了最后一个片段并与第二个参数进行比较。

问题是我的代码必须是通用的,为此我需要知道系统相关的路径分隔符是什么?

3 个答案:

答案 0 :(得分:22)

您不应手动形成文件路径 - 而是使用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 );

答案 1 :(得分:8)

您可以使用SL constant in File::Util

答案 2 :(得分:5)

接受的答案解决了您的实际问题,但如果确实想要获取分隔符(仅使用perl核心模块):

my $sep = File::Spec->catfile('', '');

这会将两个空文件名与当前系统的分隔符连接起来,只留下分隔符。