如何在perl中拆分当前目录

时间:2013-11-13 16:16:10

标签: perl path

我需要将当前目录的尾随部分放入变量中。我可以做一个

use Cwd;
my $dir = getcwd;

获取完整路径:usr\bjm\scPDB_entries\4dpt但我真正需要的是将4dpt'从路径的其余部分拆分出来。

谢谢!

2 个答案:

答案 0 :(得分:5)

File::Basename

use File::Basename qw(basename);
print basename($dir), "\n";

答案 1 :(得分:4)

最好使用File::Spec,特别是如果代码需要跨平台工作。 File::Basename的文档说明了这一点。

  

如果你只关心解析路径,那么使用File :: Spec的splitpath()和splitdir()方法会更安全。

此程序按您的要求执行

use strict;
use warnings;

use File::Spec;

my $cwd = File::Spec->rel2abs;
my @path = File::Spec->splitdir($cwd);
my $dir = $path[-1];
print $dir;

它啰嗦主要是因为File::Spec的面向对象性质。辅助模块File::Spec::Functions允许您通过将类方法作为本地子例程导入来使其更简洁。

use strict;
use warnings;

use File::Spec::Functions qw/ rel2abs splitdir /;

my $dir = (splitdir(rel2abs))[-1];
print $dir;