現在のディレクトリの末尾部分を変数に入れる必要があります。私はできる
use Cwd;
my $dir = getcwd;
の完全なパスを取得するには:usr\bjm\scPDB_entries\4dpt
しかし、本当に必要なのは4dpt
、パスの残りの部分から分割される ' ' です。
ありがとう!
use File::Basename qw(basename);
print basename($dir), "\n";
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;