2017-08-03 33 views
-1

Perlでファイルの絶対パスを取得したいとします。ファイルは/a/b/c/file.txtにあります。ですから、/a/b/c/を取得したいと思います。実際の作業ディレクトリは/a/b/なので、現時点でCwd::cwd()を使用することはできません。 Perlスクリプトが/a/b/から呼び出されているので、これはバグではありません。Perlで絶対パスを取得する

だから、それを捕まえるためのPerl関数がありますか、それを見つけるために正規表現を使わなければなりませんか?

+0

'relative'または' absolut'パスが必要ですか? 「相対的」ならば、「相対的」とは何か? – Jens

+0

絶対は '/ a/b/c/file.txt'を指します。私は '/ a/b/c /'が必要です。私はそれを相対的に呼ぶ!それは本当ですか?私が親を言うなら、いくつかは 'c /'と考えるかもしれません。 – mahmood

+0

私の理解では、相対パスはcwdのような相対パスです。絶対パスはルートディレクトリから始まります – Jens

答えて

5
use File::Basename; 
my $path = "https://stackoverflow.com/a/b/c/file.txt"; 
my ($filename, $dir) = fileparse($path); 
2

ファイル名に特殊文字なしで、NAME.EXTとしてフォーマットされている場合は、あなたがそのようなこの一つとして、正規表現を使用することができます。

(.*\/)[\w-]+\.[\w]{3} 

ファイル名はAZ、AZ、0-9で構成され、することができます - (マイナス)

+0

ファイル名に '-'特殊文字がありますか? – mahmood

+0

@mahmood私は追加しました - 許可されたcharとしてファイル名 – Nino

関連する問題