2011-11-15 89 views
12

我有一個文件的完整路徑和Perl程序中兩個變量的父目錄之一的完整路徑。如何使用perl將完整路徑轉換爲相對路徑?

什麼是安全的方式來計算文件相對於父目錄的相對路徑。需要在windows和unix上工作。

例如

$filePath = "/full/path/to/my/file"; 
$parentPath = "/full"; 
$relativePath = ??? # should be "path/to/my/file" 
+0

相關http://stackoverflow.com /問題/ 6278143/how-to-assign-of-a-regex-match-to-a-new-variable-in-a-line-line – daxim

回答

22

使用File::Spec

他們有一個abs2rel功能

my $relativePath = File::Spec->abs2rel ($filePath, $parentPath); 

將工作在Windows和Linux

9
use Path::Class; 
my $full = file("/full/path/to/my/file"); 
my $relative = $full->relative("/full"); 
+3

+1我喜歡[Path :: Class](http:// p3rl。 org/Path :: Class),它在File :: Spec中記錄了一些設計瑕疵。 – daxim

相關問題