如何在当前目录中输出空文件的名称?

Alb*_*haw 2 perl glob filesize

我正在尝试检查我的文件夹中是否为空(0字节)的文件.我有大约1200个文件,所以Perl将使这个任务非常容易:)

到目前为止,这是我的代码,但它似乎不起作用.(它只列出了所有文件.)任何人都可以教我做错了什么吗?谢谢!

#!/usr/bin/perl
@files = glob('*');
if ((-s @files) == 0) {
    print"@files\n";
}
Run Code Online (Sandbox Code Playgroud)

ike*_*ami 5

你做了一个检查,但你有多个文件.显然,这毫无意义.您需要添加一个循环来检查每个文件.

#!/usr/bin/perl
use strict;
use warnings;
my @files = grep { -s $_ == 0 } glob('*');
   # or:    grep { ! -s $_ }
   # or:    grep { -z $_ }
   # or:    grep { -z }
   # or:    grep -z,
print "@files\n";
Run Code Online (Sandbox Code Playgroud)

在您的版本中,您试图获取所命名文件的大小12或者是什么元素的@files数量.结果,-s回来undef$!{ENOENT}.