对于Java,我们可以使用
获取路径分隔符System.getProperty("path.separator");
Perl有类似的方法吗?我想做的就是找到一个目录,直接子目录。
假设我有两个参数$a
和$b
;我正在基于路径分隔符拆分第一个并再次连接它,除了最后一个片段并与第二个参数进行比较。
问题是我的代码必须是通用的,为此我需要知道系统相关的路径分隔符是什么?
答案 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)
答案 2 :(得分:5)
接受的答案解决了您的实际问题,但如果确实想要获取分隔符(仅使用perl核心模块):
my $sep = File::Spec->catfile('', '');
这会将两个空文件名与当前系统的分隔符连接起来,只留下分隔符。