所以我是Perl的新手并尝试简单地打开一个目录,并列出其所有文件 . 当我在下面运行这个非常简单的代码尝试在/ usr / bin中打印所有内容时,它将无法正常工作,无论我尝试什么,我都会被告知'无法打开/ usr / bin:没有这样的文件或目录' .
任何帮助将非常感激!
#!/usr/bin/perl
$indir = "/usr/bin";
# read in all files from the directory
opendir (DIR, @indir) or die "Could not open $indir: $!\n";
while ($filename = readdir(DIR)) {
print "$filename\n";
}
closedir(DIR);
1 回答
这是另一个省略
use strict;
和use warnings;
的基本故障排除步骤的地方,它会告诉你到底出了什么问题 .当然,您还必须修复一些其他错误(例如
my $indir = '/usr/bin';
)我还建议readdir不适合这项工作,并倾向于推荐
glob
:注意这有什么不同 - 它打印文件的完整路径,它省略了某些东西(如
.
和..
),在我看来,这通常很有用 . 尤其是因为另一个真正常见的错误是open my $fh, '<', $filename or die $!
,忘记它不在当前的工作目录中 .