perl 如何拆分当前目录

b1uwtaje  于 2023-06-06  发布在  Perl
关注(0)|答案(2)|浏览(133)

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

use Cwd;
my $dir = getcwd;

要获取的完整路径,请执行以下操作:usr\bjm\scPDB_entries\4dpt,但我真正需要的是将4dpt从路径的其余部分中分离出来。

camsedfj

camsedfj1#

File::Basename

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

iezvtpos2#

最好使用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;

相关问题