如何使用Perl glob返回文件的绝对路径名?

时间:2011-02-22 17:45:05

标签: perl glob

我有一些Perl代码,它有文件glob操作。

$file1 = @ARGV[0];
@res1 = glob "$file1*";

我希望在我整理文件时反映整个绝对路径,而不仅仅是当前代码中的文件名。

e.g。当我执行glob“* .pdf”时,我需要匹配pdf文件的绝对路径并通过glob返回到我的数组变量。

我尝试使用模块使用File :: Basename; 但这似乎用于将文件路径解析为目录,文件名,后缀。

如何获得此效果。

感谢,

-AD。

2 个答案:

答案 0 :(得分:9)

您希望使用核心模块Cwd来获取与当前工作目录相关的完整路径。

use Cwd;
@res1 = map { Cwd::abs_path($_) } glob "$file1*";

答案 1 :(得分:3)

您想使用标准模块File::Spec。它有一个子rel2abs(),这正是你想要的。有关详细信息,请参阅perldoc File::Spec。另外,请参阅perldoc perlmodlib以获取与Perl一起安装的标准模块和语用的列表。