如何在 perl 中从 c:\root 打印某些文件的绝对路径?

如何在 perl 中从 c:\root 打印某些文件的绝对路径?

有这个 perl:

#!/usr/bin/perl -w
use Cwd qw[abs_path];
use autodie;
opendir C, "c:\\";
@ar = map { abs_path($_) } readdir(C) or die $!;
print $ar[0];

我试图打印第一个文件的绝对路径c:\,但出现错误:

Use of uninitialized value $ar[0] in print at C:\Users\ppast\OneDrive\Plocha\b.pl line 5.  

有人知道什么问题吗?

答案1

读目录返回文件名,而不是文件名的路径。您需要自己为路径添加前缀:

my @ar = map { abs_path('C:\\' . $_) } readdir C;

您还应该检查打开目录

opendir C, "C:\\" or die $!;

相关内容