use File::Basename;
my $path = "a/b/c/d";
my $dirpath = basename ($path);
my $basepath = dirname ($path);
my $base_basepath = dirname ($basepath);
my $dir_dirpath = basename ($basepath);
print "$dir_dirpath/$dirpath\n";
c/d を印刷したい (つまり、ディレクトリ/ファイル名のリスト)。上記はそれを行うための最良の方法ですか?上記は明らかに機能しますが、私はどういうわけかそれが好きではありません。それを行うためのより良い/クールな/効率的な方法はありますか? 正規表現の一致のようなもの??
実際、そのプログラムは、私が本当にやりたいことの一部を実行するだけです。これらはさまざまなユースケースであり、期待される結果は次のとおりです。
a/b/c/d => c/d d
b/c/d => c/d d
/c/d => c/d d
c/d => c/d d
/d => d
d => d