2016-03-08 262 views
-1

我想相对于当前目录的路径拓展的首选方式:获得相对路径的绝对路径当前目录

use feature qw(say); 
use strict; 
use warnings; 

use Cwd; 
use File::Spec; 

my $fn = 'test/my_file'; 

say File::Spec->rel2abs($fn); 
say Cwd::abs_path($fn); 

这里,Cwd::abs_path()如果目录test不存在失败。

为什么File::Spec->rel2abs()工作正常,而Cwd::abs_path()失败?

两个模块CwdFile::Spec的文档没有提供这种情况的原因。根据下面的bug报告它可以从2004年是由于符号链接的扩展,第一:"Cwd::abs_path returns undef for non-existent paths"

回答

2

文件::规格和友好的路径::类请勿触摸文件系统,以便它们可用于您将创建的路径。 Cwd::abs_path这样做,所以它可以用来返回有效的路径。使用最适合的方式。

+0

感谢您参考'Path :: Class'! –