从相对路径确定绝对路径

我想在perl脚本中将相对路径转换为绝对路径.我的理解是,File :: Spec-> rel2abs将能够正常处理它,但是在以下情况下,我没有得到预期的结果

c:\Temp>cat test.pl
use File::Spec;
print File::Spec->rel2abs($ENV{'VS100COMNTOOLS'} . '../../VC/bin/vsvars32.bat');

c:\Temp>perl test.pl
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\..\..\VC\bin\vsvars32.bat

我期待类似的东西

C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vsvars32.bat

为MSWin32-x86-多线程(ActiveState Corp.)构建的Perl版本v5.6.1

为了更加清晰,我想实现类似于以下Python代码的内容

>>> os.path.abspath(os.path.join(os.environ['VS110COMNTOOLS'], r'..\..\VC\bin\vsvars32.bat'))
'C:\\Program Files (x86)\\Microsoft Visual Studio 11.0\\VC\\bin\\vsvars32.bat'

解决方法:

You can also do this with the Cwd core module

use Cwd 'abs_path';
my $abs_path = abs_path($file);

(示例直接取自文档).

但是,您绝对应该升级您的Perl. Perl 5.6.1实际上是在12年前发布的.从那时起,无论是在语言上还是在Windows支持方面,都取得了长足的进步.

上一篇:如何检查mySQL DB中的值是否存在?


下一篇:openssl安装