0

現在のディレクトリの末尾部分を変数に入れる必要があります。私はできる

use Cwd;
my $dir = getcwd;

の完全なパスを取得するには:usr\bjm\scPDB_entries\4dptしかし、本当に必要なのは4dpt、パスの残りの部分から分割される ' ' です。

ありがとう!

4

2 に答える 2

5

ファイル::ベース名

use File::Basename qw(basename);
print basename($dir), "\n";
于 2013-11-13T16:18:52.480 に答える
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;
于 2013-11-13T16:44:35.357 に答える